y 初始值为 0,在整个 for 循环中,y 的值不变,故判断语句中的 (y!=0) 不成立,故一次也不执行。
3,关于 JAVA 堆, 下面说法错误的是 ( )A. 所有类的实例和数组都是在堆上分配内存的
B. 对象所占的堆内存是由自动内存管理系统回收
C. 堆内存由存活和死亡的对象,空闲碎片区组成
D. 数组是分配在栈中的
答案:D首先数组是分配在堆中的,故 D 的说法不正确。
Java 堆的结构:JVM 的堆是运行时数据区,所有类的实例和数组都是在堆上分配内存。它在 JVM 启动的时候被创建。对象所占的堆内存是由自动内存管理系统也就是垃圾收集器回收。堆内存是由存活和死亡的对象组成的。存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前,他们会一直占据堆内存空间。
4,在使用 super 和 this 关键字时,以下描述正确的是()A. 在子类构造方法中使用 super()显示调用父类的构造方法;
super()必须写在子类构造方法的第一行,否则编译不通过
B.super()和 this()不一定要放在构造方法内第一行
C.this()和 super()可以同时出现在一个构造函数中
D.this()和 super()可以在 static 环境中使用,包括 static 方法和 static 语句块
答案:AJava 关键字 this 只能用于方法方法体内。当一个对象创建后,Java 虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this 只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现 this。
super 关键和 this 作用类似,是被屏蔽的成员变量或者成员方法或变为可见,或者说用来引用被屏蔽的成员变量和成员成员方法。
不过 super 是用在子类中,目的是访问直接父类中被屏蔽的成员,注意是直接父类(就是类之上最近的超类)
5,下列语句哪一个正确()A.Java 程序经编译后会产生 machine code
B.Java 程序经编译后会产生 byte code
C.Java 程序经编译后会产生 DLL
D.以上都不正确
答案:BJava 字节码是 Java 源文件编译产生的中间文件
java 虚拟机是可运行 java 字节码的假想计算机 java 的跨平台性也是相对与其他编程语言而言的 。
先介绍一下 c 语言的编译过程:c 的文件经过 C 编译程序编译后生成 windows 可执行文件 exe 文件然后在 windows 中执行。
再介绍 java 的编译过程:java 的文件由 java 编译程序将 java 字节码文件就是 class 文件在 java 虚拟机中执行。机器码是由 CPU 来执行的;Java 编译后是字节码。
电脑只能运行机器码。Java 在运行的时候把字节码变成机器码。C/C++ 在编译的时候直接编译成机器码
6,下列哪一种叙述是正确的()A.abstract 修饰符可修饰字段、方法和类
B.抽象方法的 body 部分必须用一对大括号 { } 包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
答案:Dabstract 修饰符用来修饰类和成员方法
用 abstract 修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化。
用 abstract 修饰的方法表示抽象方法, 抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。
Abstract 是 Java 中的一个重要关键字,可以用来修饰一个类或者一个方法。
修饰一个方法时,表示该方法只有特征签名(signature),没有具体实现,而是把具体实现留给继承该类的子类,所以不能有大括号。
7,下列说法正确的有()A.class 中的 constructor 不可省略
B.constructor 必须与 class 同名,但方法不能与 class 同名
C.constructor 在一个对象被 new 时执行
D.一个 class 只能定义一个 constructor
来源: http://blog.csdn.net/sky_blue12321/article/details/78984009