选择题练习~答案及解析(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 = new 		Employee("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)

A true,false
B true,true
C false,true
D false,false
E 对于不同的环境结果不同
F 程序无法执行

你可能感兴趣的:(题目)