选择题练习~答案及解析(9)

3、关于 JAVA 堆,下面说法错误的是(D)
A 所有类的实例和数组都是在堆上分配内存的
B 对象所占的堆内存是由自动内存管理系统回收
C 堆内存由存活和死亡的对象,空闲碎片区组成
D 数组是分配在栈中的

数组是大对象,应该分配在堆上

5、JAVA语言的下面几种数组复制方法中,哪个效率最高(B)
A for循环逐一复制
B System.arraycopy
C Arrays.copyOf
D 使用clone方法
6、下面那些情况可以终止当前线程的运行(B)
A 当一个优先级高的线程进入就绪状态时
B 抛出一个异常时
C 当该线程调用sleep()方法时
D 当创建一个新线程时
7、对文件名为Test.java的java代码描述正确的是(C)
class Person { String name = "No name"; public Person(String nm) { name = nm; } } class Employee extends Person { String empID = "0000"; public Employee(String id) { empID = id; } } public class Test { public static void main(String args[]) { Employee e = newEmployee("123"); System.out.println(e.empID); } }

A 输出:0000
B 输出:123
C 编译报错
D 输出:No name
8、有关下述Java代码描述正确的选项是(F)
public class TestClass { private static void testMethod(){ System.out.println("testMethod")} public static void main(String[] args) { ((TestClass)null).testMethod(); } }

A 编译不通过
B 编译通过,运行异常,报NullPointerException
C 编译通过,运行异常,报IllegalArgumentException
D 编译通过,运行异常,报NoSuchMethodExceptionE 编译通过,运行异常,报Exception
F 运行正常,输出testMethod
9、下列java程序的输出结果(B)
public class Example{ String str=new String("hello"); char[]ch={'a','b'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+" and "); System.out.print(ex.ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='c'; } }

A hello and ab
B hello and cb
C hello and a
D test ok and ab
E test ok and cb
F test ok and c
10、在jdk1.5之后,下列 java 程序输出结果为(B)
int i=0; Integer j = new Integer(0); System.out.println(i==j); System.out.println(j.equals(i)

【选择题练习~答案及解析(9)】A true,false
B true,true
C false,true
D false,false
E 对于不同的环境结果不同
F 程序无法执行

    推荐阅读