java课后习题答案及部分作业答案 下载本文

A. 程序员必须创建一个线程来释放内存; B. 内存回收程序负责释放无用内存;

C. 内存回收程序允许程序员直接释放内存;

D. 内存回收程序可以在指定的时间释放内存对象。

18、 创建一个名为“MyClass.java”的文件,该文件中只有一个可被整个工程中的所有类访问的类,那么该类的正确声明应为:( C ) A. private class MyClass extends Object B. class TestClass extends Object C. public class MyClass D. public class TestClass

19、 下列叙述中,错误的是( A )

A. 内部类的名称与定义它的类的名称可以相同 B. 内部类可用abstract修饰 C. 内部类可作为其他类的成员 D. 内部类可访问它所在类的成员

20、 用于在子类中调用被重写的父类方法的关键字是( B ) A. this B. super C. This D. Super

21、 下面程序输出结果是( A ) public class Delta {

static boolean foo(char c) { System.out.print(c); return true; }

public static void main( String[] argv ) { int i =0;

for ( foo('A'); foo('B')&&(i<2); foo('C')){ i++ ; foo('D'); } } }

A. ABDCBDCB B. ABCDABCD C. 编译错误 D. 运行时异常 二、 程序阅读题

1、 写出以下程序的运行结果: class Egg {

protected class Yolk { public Yolk() {

System.out.println(\

} }

private Yolk y; public Egg() {

System.out.println(\Egg()\y = new Yolk(); } }

public class BigEgg extends Egg { public class Yolk { public Yolk() {

System.out.println(\} }

public static void main(String[] args) { new BigEgg(); } }

运行结果: New Egg() Egg.Yolk()

2、 写出以下程序的结果: public class Test {

private static void printArray(int[] arr) { for(int i=0;i< arr.length;i++) System.out.print(arr[i]+”,”); System.out.println(“\\n”); }

private static void changeValue(int value) { value*=2; }

private static void changeValue(int[] arr) { for(int i=0;i

public static void main (String[] args) { int[] arr={1,2,3,4,5}; changeValue(arr[0]); printArray(arr); changeValue(arr); printArray(arr); } }

运行结果:

1,2,3,4,5,

2,4,6,8,10,

3、 指出以下程序的错误,并改正: public class Main {

public static final A obj = null;

public static void main(String[] args) { obj = new A(); } }

class A{ }

错误:final的对象不能改变。

4、 指出以下程序的错误,并改正: public class Test {

public static void main(String[] args) { MyClass obj=new MyClass(); obj.Info+=”,World!”;

System.out.println(obj.Info); } }

class MyClass {

public String Info=”Hello”; public MyClass(String Info) {

this.Info=Info; } }

错误: MyClass obj=new MyClass();找不到匹配的构造方法。 5、 指出下面程序的错误,并改正: abstract class Animal {

public abstract void saySomething() { System.out.println(“你想说什么就说吧!”); } }

class Dog extends Animal { public void saySomething() {

System.out.println(“我现在有了第二职业:捉耗子!”); } }

public class Test {

public static void main (String[] args) { Animal ani=new Dog(); ani.saySomething();

} }

错误:public abstract void saySomething()抽象方法不能有方法体。 三、 简答题(略) 四、 综合编程题(略)

第四章 异常和断言 一、 选择题

1、 以下哪两个是Throwable的直接子类?( AC ) A. Error

B. NullPointerException C. Exception D. Assert

2、 能单独和finally块一起使用的块是( A ) A. try B. catch C. throw D. throws

3、 下列异常类中在多重catch中同时使用时,( C )异常类的catch块应该最后列出? A. NullPointerException B. ArithmeticException C. Exception

D. ArrayIndexOutOfBoundsException

4、 程序读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于10,使用throw语句显式地引发异常,异常输出信息为\wrong!\语句为( C )。 A. if (i>10) throw Exception(\wrong!\B. if (i>10) throw Exception e (\wrong!\C. if (i>10) throw new Exception(\wrong!\D. if (i>10) throw new Exception e (\wrong!\5、 分析下列Java代码: class A{