JAVA笔试题(答案在最后)

更新时间:2023-11-02 23:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

测试题(笔试)

Java 面向对象

不定项选择题(40题,每题2.5分,总分100分,测试时间2小时) 1)

当试图编译并运行下面程序时会出现什么结果()(单选)

- 1 -

class A{

public int getNumber(int a){ return a+1; } }

class B extends A{

public int getNumber(int a, char c){ return a+2; }

public static void main(String[] args){ B b=new B();

System.out.println(b.getNumber(0)); } } 2)

a) b) c) d)

编译错误 运行错误 1 2

当编译并运行下面程序时会出现什么结果( )(单选)

public class MyAr{

- 2 -

public static void main(String argv[]){ int[] i = new int[5]; System.out.println(i[5]); } }

3)

final、finally、finalize三个关键字的区别是()(多选) a) b)

final是修饰符(关键字)可以修饰类、方法、变量 finally在异常处理的时候使用,提供finally块来执行任何清除操作

c)

finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作

4)

a) b) c) d)

编译错误 运行错误 输出0 输出“null”

d) finally和finalize一样都是用异常处理的方法

当编译并运行下面程序时会发生什么结果()(单选)

public class Bground extends Thread{

- 3 -

public static void main(String argv[]){ Bground b = new Bground(); b.run(); }

public void start(){

for (int i = 0; i <10; i++){

System.out.println(\= \ } }

}

5)

在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法。(单选)

a) b) c) d)

编译错误,指明run方法没有定义 运行错误,指明run方法没有定义 编译通过并输出0到9 编译通过但无输出

- 4 -

6)

当编译并运行下面程序时会发生什么结果:(单选)

public class Hope{

public static void main(String argv[]){ Hope h = new Hope(); }

protected Hope(){

for(int i =0; i <10; i ++){ System.out.println(i); } } }

- 5 -

a) b) c) d)

Final Static Abstract Void

a) b) c) d)

编译错误,构造方法不能被声明为protected 运行错误,构造方法不能被声明为protected 编译并运行输出0到10 编译并运行输出0到9

7) 8)

当编译并运行下面程序时会发生什么结果?( )(单选)

public class Test{

public static void stringReplace(String text){ text=text+”c”; }

public static void bufferReplace(StringBuffer text){

text=text.append(\ }

public static void main(String args[]){ String textString=new String(\ StringBuffer StringBuffer(\

stringReplace(textString); bufferReplace(textBuffer);

- 6 -

下列说法正确的是?()(多选) a) b) c) d)

数组有length()方法 String有length()方法 数组有length属性 String有length属性

textBuffer=new

System.out.println(textString+textBuffer); } }

9)

以下哪些表达式返回为真()(多选)

String a=”My field1”; String b=”My field1”;

String c=new String(”My field1”); String d=new String(”My field1”);

10) 当编译和运行下面程序时,哪项描述可以最准确的表达

- 7 -

a) b) c) d)

编译并运行输出javac javac 编译并运行输出java java 编译并运行输出java javac 编译并运行输出 javac java

a) b) c) d) e) f)

a ==b a==c c==d a.equals(b) a.equals(c) c.equals(d)

发生了什么事情( )(单选)

public class MyAr{

public static void main(String argv[]) { MyAr m = new MyAr(); m.amethod(); }

public void amethod(){ int i;

System.out.println(i); }

}

11) 给定如下java代码程序片断:

a) b) c) d)

编译并输出0 编译错误 编译并输出null 运行错误

class A{

public A(){

System.out.println(“A”);

- 8 -

}

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

B b=new B(); class B extends A{

public B(){ }

System.out.println(“B”); } }

上述程序将()(单选)

()(多选) 12) 关于线程,以下说法正确的是:

a) b) c) d)

不能通过编译 通过编译,输出为AB 通过编译,输出为B 通过编译,输出为A

a) b)

sleep方法执行时会释放对象锁。 wait方法执行时会释放对象锁。

- 9 -

(单13) 给定JAVA代码如下,编译运行后,输出结果是()

选)

public class test{ static int i; public int test(){ i++; return i; }

public static void main(String args[]){ Test test=new Test(); test.test();

System.out.println(test.test()); } }

- 10 -

c) d)

sleep方法必须写在同步方法或同步块中 wait方法必须写在同步方法或同步块中

a) b) c) d)

0 1 2 3

14) 给定JAVA代码如下,关于super的用法,以下描述正确

的是( )(单选)

class C extends B {

public C() {

super(); } }

a) 用来调用类B中定义的super()方法 b) 用来调用类C中定义的super()方法 c) 用来调用类B中的无参构造方法 d)

用来调用类B中第一个出现的构造方法

15) 哪些是Thread类中本身的方法(不包括继承)选) a) start() b) sleep(long mi) c) wait() d)

notify()

16) 下面哪些为真()

(多选) - 11 -

(

)(多

( )(单选) 17) 下面哪些是正确的描述了关键字synhronized

(单选) 18) 下列哪一种叙述是正确的()

(多选) 19) 下面关于网络通信正确的描述是()

a) b) c) d)

接口里可定义变量,并且变量的值不能修改 任何情况下,类都不能被private修饰 类可以被protected修饰 接口不能实例化

a) b) c) d)

允许两个进程并行运行但其之间相互通信 保证任何时候只有一个线程访问一个方法或对象 保证两个或多个进程同时启动和结束 保证两个或多个线程同时启动和结束

a) b) c) d)

abstract修饰符可修饰属性、方法和类 抽象方法的body部分必须用一对大括号{ } 声明抽象方法,大括号可有可无 声明抽象方法不可写出大括号

a) TCP/IP协议是一种不可靠的网络通信协议。

- 12 -

20) 在Java中,下面关于抽象类的描述正确的是()(多选)

a) b)

抽象类可以被实例化

如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象类

(单选) 21) 给定java代码如下,编译运行结果是()

public class Test{ public int count(){ return 1%9; }

public static void main(String[]args){ System.out.println(count()); } }

- 13 -

b) c) d)

UDP协议是一种可靠的网络通信协议。 TCP/IP协议是一种可靠的网络通信协议。 UDP协议是一种不可靠的网络通信协议。

c) d)

抽象类的方法都必须是抽象的 声明抽象类必须带有关键字abstract

22) 将对象序列化,要实现哪个接口()(单选)

23) 以下代码输出结果为( ) (单选)

public class Test{

public static String output=\ public static void foo(int i){ try { if(i==1){

throw new Exception(); }

output +=\

- 14 -

a) b) c) d)

编译错误 运行错误 正常运行,输出1 正常运行,输出0

a) b) c) d)

Cloneable Runnable Serializable Comparator

} catch(Exception e){ output+=\

return;

} finally{ output+=\ }

output+=\ }

public static void main(String args[]){ foo(0); foo(1);

System.out.println(output); } }

24) 在JAVA中,()接口位于集合框架的顶层( ) (单选)

a) b) c) d)

1342 123 134234 13423

- 15 -

答案:1、C 2、B 3、ABC 4、D 5、C 6、D 7、BC 8、C 9、ADEF 10、B 11、B

- 26 -

12、BD 13、C 14、C 15、AB 16、ACD 17、B 18、D 19、CD 20、BD 21、A 22、C 23、D 24、A 25、D 26、A 27、C 28、C 29、C 30、D 31、CDE 32、AB 33、AC

- 27 -

34、AC 35、AB 36、C 37、A 38、AC 39、CDE 40、BE

- 28 -

*/

public static void main(String[] args) {

int a[] = {0,1,2,3,4};

int sum=0; try {

for(int i=0;i<6;i++) { }

System.out.println(\ }

catch(java.lang.ArrayIndexOutOfBoundsException e) {

System.out.println(\数组下标越界\ } finally {

System.out.println(\程序结束\ }

sum+=a[i];

}

- 21 -

}

输出结果将是()

37) 研究下面JAVA代码

public class TestException {

a) b) c) d)

10 数组下标越界 程序结束 10 程序结束

数组下标越界 程序结束 程序结束

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

- 22 -

try { } finally { }

System.out.println(\System.out.println(\System.exit(0);

}

输出结果为()(单选) a) hello,jr b) 88

c) hello,jr后是88 d)

不能编译

38) 考虑下面的代码

public class ConstOver{ public ConstOver(int x,int y,int z){}

}

说出哪些重载了ConstOver构造器?(多选)

a) ConstOver(){}

b) protected int ConstOver(){}

c) private ConstOver(int z,int y,byte z){}

d)

public void ConstOver(byte x,byte z){}

e) public Object ConstOver(int x,int y,int

- 23 -

y,byte z){}

39) 有以下代码:

package com; public class Test { }

在here处加上以下什么语句,可以获得Class对象?(多选)

(多选) 40) 能用来修饰interface方法的有( )

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

Test test = new Test(); //here

a) b) c) d) e) f)

Class c = new Class(); Class c = test.class; Class c = Test.class; Class c = test.getClass();

Class c = Class.forName(“com.Test”); Class c = Class.forName(“Test”);

a)

private

- 24 -

- 25 -

b) c) d) e)

public protected static 不加修饰符

本文来源:https://www.bwwdw.com/article/1p52.html

Top