《java语言》试题卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java语言程序设计》试题卷

学号:姓名:

一、是非题(10%)

1.所谓缺省构造就是没有参数的构造函数。

2.Java的char类型是8位的。

3.一个Java类可以有多个父类,这称做多继承。

4.对象成员变量在对象创建时会获得一个缺省的初始值。

5.Java数组随时可以改变大小。

6.InputStream和OutputStream读写的数据是8位的。

7.Java是强类型语言。

8.Java没有指针,引用不能等同于指针。

9.protected的成员只能被继承类成员存取。

10.任何Applet都完全不可以访问本地资源。

二、选择题(20%)

1.下面关于Java的引用的说法正确的是:

(A)引用实际上就是指针(B)引用本身是primitive

(C)引用就是对象本身(D)一个对象只能被一个引用所指引

2.在一个线程中使用sleep(1000)方法,将使该线程在多少时间后获得CPU控制(假设

睡眠过程中不会有其他事件唤醒该线程)?

(A)正好1000毫秒(B)1000毫秒不到

(C)>=1000ms (D)不一定,可能少于1000毫秒,也可能多于1000毫秒

3.对于import java.util.Vector; 以下哪种说法是错误的?

(A)Vector类属于java.util包(B)Vector类放在..../java/util/目录下

(C)Vector类放在java.util文件中(D)Vector类是Sun公司的产品

4.以下关于垃圾收集的说法正确的是:

(A)一旦一个对象成为垃圾,就立刻被收集掉

(B)对象空间被收集掉之后,会执行该对象的finalize方法

(C)finalize方法和C++的析构函数是完全一回事

(D)一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此

5.以下关于异常的说法正确的是:

(A)一旦出现异常,程序运行就终止了

(B)如果一个方法申明将抛出某种异常,它就必须真的抛出那个异常

(C)在catch子句中匹配异常是一种精确匹配

(D)可能抛出系统异常的方法是不需要申明异常的

三、小问题(30%)

1. 写出以下关键字的意义和运用场合

A. final

B. finalize

C. finally

2. 一个类可以继承几个超类?一个类可以实现几个接口?一个接口可以继承几个接口?接口可以继承类吗?接口可以实现接口吗?

1

3. 写出以下标出行号的语句的执行顺序:

class A {

static int i = 0; // 1

float f = 1.0; // 2

String str = new String(); // 3

A() {

str = “Hello”;// 4

}

}

public class B extends A {

static int j=3; // 5

bool isHi = true; // 6

B(bool hi) {

isHi = hi; // 7

}

public static void main(String[] args) {

B bb = new B(false); // 8

}

4. 假设已编写好了类Class1:

package Testpackage;

public class Class1{

……

}

它存在于Class1.java 文件中。

现在main 方法所在的源程序MainPro.java 如下:

import Testpackage;

……

设操作系统中的CLASSPATH 环境变量已被设成"c:\java\lib\classes.zip;.; ",而main方法所在的源程序MainPro.java 存在目录c:\Testdir 中,当前工作目录为c:\Testdir,那么Class1.class文件应存放在那个目录中呢?

5. 指出下面程序中的错误:

class Value {

int i = 1;

}

public class FinalData {

final int i1 = 9;

static final int I2 = 99;

public static final int I3 = 39;

final int i4 = (int)(Math.random()*20);

static final int i5 = (int)(Math.random()*20);

Value v1 = new Value();

final Value v2 = new Value();

static final Value v3 = new Value();

final Value v4;

2

final int[] a = {1,2,3,4,5,6};

public void print(String id) {

System.out.print(

id + ": " + "i4 = " + i4 + ", i5 = " + i5);

}

public static void main(String[] args) {

FinalData fd1 = new FinalData();

fd1.i1++;

fd1.v2.i++;

fd1.v1 = new Value();

for ( int i = 0; i< fd1.a.length; ++i )

fd1.a[i]++;

fd1.v2 = new Value();

fd1.v3 = new Value();

fd1.a = new int[3];

fd1.print("fd1");

System.out.println("Creating new FinalData");

FinalData fd2 = new FinalData();

fd1.print("fd1");

fd2.print("fd2");

}

}

6. 指出程序中的错误:

class BaseballException extends Exception {}

class Foul extends BaseballException {}

class Strike extends BaseballException {}

abstract class Inning {

Inning() throws BaseballException {}

void event() throws BaseballException {

}

abstract void atBat() throws Strike, Foul;

void walk() {}

}

class StormException extends Exception {}

class RainedOut extends StormException {}

class PopFoul extends Foul {}

interface Storm {

void event() throws RainedOut;

void rainHard() throws RainedOut;

}

public class StormyInning extends Inning implements Storm { StormyInning() throws RainedOut, BaseballException {} StormyInning(String s) throws Foul, BaseballException {} void walk() throws PopFoul {}

public void event() throws RainedOut {}

3

相关文档
最新文档