当前位置:文档之家› 《java语言》试题卷

《java语言》试题卷

《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. finalB. finalizeC. finally2. 一个类可以继承几个超类?一个类可以实现几个接口?一个接口可以继承几个接口?接口可以继承类吗?接口可以实现接口吗?13. 写出以下标出行号的语句的执行顺序:class A {static int i = 0; // 1float f = 1.0; // 2String str = new String(); // 3A() {str = “Hello”;// 4}}public class B extends A {static int j=3; // 5bool isHi = true; // 6B(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;2final 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 {}3public void rainHard() throws RainedOut {}public void event() {}void atBat() throws PopFoul {}public static void min(String[] args) {try {StormyInning si = new StormyInning();si.atBat();} catch (PopFoul e) {} catch (RainedOut e) {} catch (BaseballException e) {}try {Inning i = new StormyInning();i.atBat();} catch (Strike e) {} catch (Foul e) {} catch (RainedOut e) {} catch (BaseballException e) {}}}四、写出程序运行结果:(5%)class Letter {char c;}public class PassObject {static void f(Letter y) {y.c = 'z';}public static void main(String[] args) {Letter x = new Letter();x.c = 'a';f(x);System.out.println(x.c);}}五、有以下代码:(5%)public class TestClass extends Object{ private int x;private int y;TestClass theClass;public TestClass(){}public TestClass(int x, int y){//... ... ...}4public void show(){System.out.println("\nx="+x+" y="+y);}public void show(boolean flag){if (flag)System.out.println("\nx="+x+" y="+y);elseSystem.out.println("\ny="+y+" x="+x);}protected void finalize() {super.finalize();}public static void main(String args[]) {TestClass testClass;testClass.show();}}1. 在以上的源代码中,类TestClass的域有哪些?2. 构造方法有哪些?3. 方法TestClass(int x, int y)的目的是使域x,y的值分别等于方法参数表中的x,y。

请写出TestClass(int x, int y)的方法体(只用两条语句)。

相关主题