JAVA面试题

更新时间:2024-06-14 11:50:01 阅读量: 综合文库 文档下载

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

1) 当试图编译并运行下面程序时会出现什么结果(C)(单选)C 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)); } }

a) 编译错误 b) 运行错误 c) 1 d) 2

2) 当编译并运行下面程序时会出现什么结果( b)(单选)B public class MyAr{

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

a) 编译错误 b) 运行错误 c) 输出0 d) 输出“null”

3) final、finally、finalize三个关键字的区别是(bc)(多选) ABC a) final是修饰符(关键字)可以修饰类、方法、变量

b) finally在异常处理的时候使用,提供finally块来执行任何清除操作

c) finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作 d) finally和finalize一样都是用异常处理的方法

4) 当编译并运行下面程序时会发生什么结果(a)(单选)D public class Bground extends Thread{ 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(\ } } }

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

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

6) 当编译并运行下面程序时会发生什么结果:(d)(单选)D 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);

}

} }

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

7) 下列说法正确的是?(bc)(多选)BC

a) 数组有length()方法 b) String有length()方法 c) 数组有length属性 d) String有length属性

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

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 textBuffer=new StringBuffer(\ stringReplace(textString); bufferReplace(textBuffer);

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

a) 编译并运行输出javac javac b) 编译并运行输出java java c) 编译并运行输出java javac d) 编译并运行输出javac java

9) 以下哪些表达式返回为真(def)(多选)ADEF String a=”My field1”; String b=”My field1”;

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

d)a.equals(b) e)a.equals(c) f)c.equals(d)

10) 当编译和运行下面程序时,哪项描述可以最准确的表达发生了什么事情(a)(单选)B public class MyAr{

public static void main(String argv[]) {

MyAr m = new MyAr(); m.amethod(); }

public void amethod(){

int i;

System.out.println(i); } }

a) 编译并输出0 b) 编译错误

c) 编译并输出null d) 运行错误

11) 给定如下java代码程序片断: class A{ public A(){

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

class B extends A{ public B(){

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

public static void main(String[] args){

B b=new B(); } }

上述程序将(b)(单选)B a) 不能通过编译

b) 通过编译,输出为AB c) 通过编译,输出为B d) 通过编译,输出为A

12) 关于线程,以下说法正确的是:(bd)(多选) BD a) sleep方法执行时会释放对象锁。 b) wait方法执行时会释放对象锁。

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

13) 给定JAVA代码如下,编译运行后,输出结果是(c)(单选)C 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()); } }

a) 0 b) 1 c) 2 d) 3

14) 给定JAVA代码如下,关于super的用法,以下描述正确的是(c )(单选)C class C extends B { public C() {

super(); } }

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

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

15) 哪些是Thread类中本身的方法(不包括继承) ( acd)(多选) AB a) start()

b) sleep(long mi) c) wait() d) notify()

16) 下面哪些为真(ad)(多选)ACD

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

17) 下面哪些是正确的描述了关键字synhronized (b )(单选)B a) 允许两个进程并行运行但其之间相互通信

b) 保证任何时候只有一个线程访问一个方法或对象 c) 保证两个或多个进程同时启动和结束 d) 保证两个或多个线程同时启动和结束

18) 下列哪一种叙述是正确的(b)(单选)D a) abstract修饰符可修饰属性、方法和类

b) 抽象方法的body部分必须用一对大括号{ } c) 声明抽象方法,大括号可有可无 d) 声明抽象方法不可写出大括号

19) 下面关于网络通信正确的描述是(bc)(多选)CD a) TCP/IP协议是一种不可靠的网络通信协议。 b) UDP协议是一种可靠的网络通信协议。 c) TCP/IP协议是一种可靠的网络通信协议。 d) UDP协议是一种不可靠的网络通信协议。

20) 在Java中,下面关于抽象类的描述正确的是(bd)(多选)BD a) 抽象类可以被实例化

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

d) 声明抽象类必须带有关键字abstract

21) 给定java代码如下,编译运行结果是(d)(单选)A public class Test{

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

public static void main(String[]args){

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

a) 编译错误 b) 运行错误

c) 正常运行,输出1 d) 正常运行,输出0

22) 将对象序列化,要实现哪个接口(c)(单选) C a) Cloneable b) Runnable

c) Serializable d) Comparator

23) 以下代码输出结果为(c ) (单选) D public class Test{

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

if(i==1){

throw new Exception(); }

output +=\ } catch(Exception e){

output+=\ return; } finally{

output+=\ }

output+=\ }

public static void main(String args[]){

foo(0); foo(1);

System.out.println(output); } }

a) 1342 b) 123 c) 134234 d) 13423

24) 在JAVA中,()接口位于集合框架的顶层(a ) (单选) A a) Collection b) Collections c) List d) Set

25) 在Java中,下列(d)类不能派生出子类( ) (单选) D a) public class MyClass{} b) class MyClass{}

c) abstract class MyClass{} d) final class MyClass{}

26) 启动一个线程,应调用什么方法(a)。(单选)A

a) start() b) run() c)begin() d)notify()

27) 在java中,已定义两个接口B和C,要定义一个实现这两个接口的类,以 下语句正确的是( c)(单选) C

a) interface A extends B,C b) interface A implements B,C c) class A implements B,C

d) class A implements B,implements C

28) 在Java中,以下定义数组的语句正确的是( c)(单选) C a) int t[10]=new int[]; b) char a[]=\ c) int t[]=new int[10];

d) double d=new double[10];

29)给定一个java程序的main方法的代码片段如下:假如d目录下不存在abc.txt文件,现运行该程序,下面的结果正确的是(d):(单选) C try{

PrintWriter out = new PrintWriter(new FileOutputStream(\ String name=\ out.print(name); }catch(Exception e){

System.out.println(\文件没有发现!\

}

a) 将在控制台上打印:\文件没有发现!\ b) 正常运行,但没有生成文件abc.txt

c) 运行后生成abc.txt,但该文件中可能无内容 d) 运行后生成abc.txt,该文件内容为:chen

30) 集合框架中,要实现对集合里的元素进行自定义排序,要实现哪个接口(d)(单选)D a) Cloneable b) Runnable c) Serializable d) Comparator

31) class Super{

protected float getNum(){return 3.0f;} }

public class Sub extends Super{ //Here }

下面哪些代码可放在Here处(bcd)(多选)CDE a) float getNum(){return 4.0f;} b) public void getNum(){}

c) private void getNum(double d){}

d) public double Getnum(){return 4.0d;} e) public float getNum(){return 9;}

32) 在Java语言中,如果你编写一个多线程序,可以使用的方法是(cd)。(多选)AB a) 扩展类Thread

b) 实现Runnable接口 c) 扩展类Runnable d) 实现接口Thread

33) 下面哪些接口直接继承自Collection接口(ac)(多选)AC a) List b) Map c) Set

d) Iterator

34) 关于HashMap和Hashtable正确的说法有(bc)(多选)AC a) 都实现了Map接口

b) Hashtable类不是同步的,而HashMap类是同步的 c) Hashtable 不允许null键或值 d) HashMap 不允许null键或值

35) 下面关于构造方法的说法正确的是(ab)(多选)AB a) 构造方法不能被继承 b) 构造方法不能被重写 c) 构造方法不能被重载

d) 构造方法不能声明为private

36) 研究下面的JAVA代码(a)(单选) C public class TestException { /**

* @param args */

public static void main(String[] args) {

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

int sum=0; try { for(int i=0;i<6;i++) { sum+=a[i]; }

System.out.println(\ }

catch(java.lang.ArrayIndexOutOfBoundsException e) { System.out.println(\数组下标越界\ finally {

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

输出结果将是() a) 10

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

c) 数组下标越界 程序结束 d) 程序结束

37) 研究下面JAVA代码 public class TestException {

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

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

} finally { System.out.println(\ } }

输出结果为(a)(单选)A a) hello,jr b) 88 c) hello,jr 后是88 d) 不能编译

38) 考虑下面的代码 public class ConstOver{ public ConstOver(int x,int y,int z){} }

说出哪些重载了ConstOver构造器?(cd)(多选)AC a) ConstOver(){}

b) protected int ConstOver(){}

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

d) public void ConstOver(byte x,byte y,byte z){} e) public Object ConstOver(int x,int y,int z){}

39) 有以下代码: package com; public class Test { public static void main(String[] args) { Test test = new Test();

//here } }

在here处加上以下什么语句,可以获得Class对象?(cdf)(多选) CDE a) Class c = new Class(); b) Class c = test.class; c) Class c = Test.class;

d) Class c = test.getClass();

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

40) 能用来修饰interface方法的有( abde)(多选)BE a) private b) public c) protected d) static e) 不加修饰符 答案: 1、C 10、B 19、CD 28、C 37、A

2、B 11、B 20、BD 29、C 38、AC

3、ABC 4、D 5、C 6、D 7、BC 8、C 9、ADEF 12、BD 13、C 14、C 15、AB 16、ACD 17、B 18、D 21、A 22、C 23、D 24、A 25、D 26、A 27、C 30、D 31、CDE 32、AB 33、AC 34、AC 35、AB 36、C 39、CDE 40、BE

33、在文件类提供的方法中,用于创建目录的方法是(A)AB A、mkdir( ) B、mkdirs( ) C、list( ) D、listRoots( )

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

A、File类能够存储文件 B、File类能够读写文件

C、File类能够建立文件 D、File类能够获取文件目录信息

35、下列叙述中,正确的是(C) A、Reader是一个读取字符文件的接口 B、Reader是一个读取数据文件的抽象类 C、Reader是一个读取字符文件的抽象类 D、Reader是一个读取字节文件的一般类

36、用于输入压缩文件格式的ZipInputStream 类所属包是(D)

A、java.util B、java.io C、java.nio D、java.util.zip

37、Panel和Applet的默认布局管理器是 (D) B

A、CardLayout B、FlowLayout C、BorderLayout D、GridLayout

38、查找随机文件的记录时,应使用的方法是(C) A、readInt( ) B、readBytes(int n) C、seek(long l) D、readDouble( )

39、下列代码中,将引起编译错误的行是 (B) 1)public class Exercise{

2)public static void main(String args[]){ 3)float f=0.0; 4)f +=1.0; 5)} 6)}

A、第2行 B、第3行 C、第4行 D、第6行

40、在Java中,下面关于构造函数的描述正确的是 (D) A、类必须有显式构造函数 B、它的返回类型是void

C、它和类有相同的名称,但它不能带任何参数 D、以上皆非

41、在类的说明符中,被指定为私有的数据可以被(C)访问。 A、程序中的任何函数 B、其他类的成员函数

C、类中的成员函数 D、派生类中的成员函数

42、在Java中,关于final关键字的说法正确的是 (A) A、如果修饰变量,则一旦赋了值,就等同一个常量 B、如果修饰类,则该类只能被一个子类继承 C、如果修饰方法,则该方法能在子类中被覆盖 D、如果修饰方法,则该方法所在的类不能被继承

43、Java程序中读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于10,使用throw语句显式地引发异常,异常输出信息为“something’s wrong!”,

语句为 (C)

A、if (I>10) throw Exception(“something’s wrong!”); B、if (I>10) throw Exception e (“something’s wrong!”); C、if (I>10) throw new Exception(“something’s wrong!”); D、if (I>10) throw new Exception e (“something’s wrong!”);

44、在JAVA编程中,Java编译器会将Java程序转换为 (A) A、字节码 B、可执行代码 C、机器代码

D、以上所有选项都不正确

45、在J2EE中,下列元素经过排序的集合类是 (D)

A、LinkedList B、Stack

C、Hashtable D、TreeSet

46、在Java中,下面关于包的陈述中正确的是 (A)

A、包的声明必须是源文件的第一句代码 B、包的声明必须紧跟在import语句的后面 C、只有公共类才能放在包中

D、不可以将多个源文件中的类放在同一个包中

47、在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用 关键字。(A)D

A、不需要任何关键字 B、private

C、final

D、protected

48、JAVA中,为了辨别用户关闭窗口的时间,要实现监听器接口(C)

A、MouseListener B、ActionListener C、WindowListener D、以上都要

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

Top