《java语言》试题卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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