java复习题库及答案.docx
《java复习题库及答案.docx》由会员分享,可在线阅读,更多相关《java复习题库及答案.docx(74页珍藏版)》请在冰豆网上搜索。
![java复习题库及答案.docx](https://file1.bdocx.com/fileroot1/2022-11/25/90b2d2f1-3862-495d-b5e0-64adb2092ad4/90b2d2f1-3862-495d-b5e0-64adb2092ad41.gif)
java复习题库及答案
一、选择题
1.下面哪个JDK包提供的类和接口在使用时不需要用import语句引入?
[A]java.util[B]java.io[C]java.applet[D]java.lang
[E]javax.swing[F]java.awt[G][H]java.sql
2.下面哪个选项是java的解释器?
[A]java.exe[B]javac.exe[C]javah.exe[D]appletviewer.exe
3.下面描述中错误的是?
[A]public类就是主类
[B]对于application而言,主类是包含main方法的类。
[C]在一个.java文件中,可以有多个类的定义,但只能有一个public类。
[D]对于applet而言,主类是系统Applet类的扩展类。
4.下面哪个选项不是java语言合法的标识符?
[A]$mail2[B]3$mail[C]Abcde[D]_mail_
5.下面哪条语句在编译时不会出现错误或警告?
[A]floatf=123.23;[B]inta=123.23f;[C]booleanb=null;[D]Strings=null;
6.有如下语句:
intx=1;
inta=(x>3)?
5:
2;
赋值后a的值是?
[A]5[B]2[C]true[D]false
7.下面代码的运行结果是什么?
inti=2;
switch(i){
case0:
System.out.println("zero");
break;
case1:
System.out.println("one");
case2:
System.out.println("two");
default:
System.out.println("default");
}
[A]two[B]two,default[C]zero,one,two,default[D]default
8.编译运行下面代码的结果是什么?
classQ{
publicstaticvoidmain(Stringargs[]){
intanar[]={1,2,3};
System.out.println(anar[2]);
}
}
[A]1[B]2[C]3[D]0
9.编译运行下面代码的结果是什么?
interfaceA{
inta=50;
publicvoidamethod();
}
classBimplementsA{
publicstaticvoidmain(Stringargs[]){
System.out.println(a);
}
}
[A]运行时输出50[B]运行时输出0[C]编译时提示有错误
10.编译运行下面代码的结果是什么?
publicclassMyClass{
staticinti;
publicstaticvoidmain(Stringargs[]){
System.out.println(i);
}
}
[A]提示变量i没有被初始化[B]null[C]0[D]1
11.下面哪个选项的代码在编译时有错误或警告?
[A]/*Thisisacomment*/
packageMyPackage;
importjava.awt.*;
classMyClass{}
[B]packageMyPackage;
importjava.awt.*;
classMyClass{}
[C]importjava.awt.*;
packageMypackage;
classMyclass{}
12.以下输出语句的输出结果是?
inta[][]={{2},{3,3},{4,4,4}};
System.out.println(a.length+“”+a[1].length);
[A]22[B]32[C]31[D]12
13.给出如下代码:
class Test{
private int m;
public static void fun() {
// some code...
}
}
如何使成员变量m 被函数fun()直接访问?
[A]将private int m 改为protected int m
[B]将private int m 改为 public int m
[C]将private int m 改为 privatestatic int m
[D]将private int m 改为 int m
14.以下输出语句的输出结果是?
Stringstr="china";
Stringstr1="america";
System.out.println(str.regionMatches(4,str1,6,1));
[A]true[B]false[C]1[D]0
15.编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()
A..javaB..classC..htmlD..exe
16.设x=1,y=2,z=3,则表达式y+=z--/++x的值是:
()
A.3B.3.5C.4D.5
17.设a=8,则表达式a>>>2的值是:
()
A.1B.2C.3D.4
18.下面程序段的输出结果是()
StringMyStr=“Hello,”;
MyStr=MyStr+“Guys!
”;
System.out.println(MyStr);
A.Hello,Guys!
B.Hello,
C.Guys!
D.该程序段有语法错误
19.下面语句哪个是正确的?
()
A.char='abc'B.longl=0xfff
C.floatf=0.23D.double=0.7E-3
20.下面语句段的输出结果是什么?
()
inti=9;
switch(i){
default:
System.out.println(“default”);
case0:
System.out.println(“zero”);
break;
case1:
System.out.println(“one”);
case2:
System.out.println(“two”);}
A.defaultB.default,zero C.errordefaultclausenotdefinedD.nooutputdisplayed
21.当编译和运行下列程序段时,会发生什么?
()
classBase{}
classSubextendsBase{}
classSub2extendsBase{}
publicclassCEx{
publicstaticvoidmain(Stringargv[]){
Baseb=newBase();
Subs=(Sub)b;
}
}
A.通过编译和并正常运行。
B.编译时出现例外。
C.编译通过,运行时出现例外。
22.如果类能被所属包中的类访问,也可以被其它包中的类访问,那么应使用哪个限定词?
()
A.publicB.privateC.protectedD.transient
23.下面的哪个选项是正确的?
()
classExSuper{
Stringname;
Stringnick_name;
publicExSuper(Strings,Stringt){
name=s;
nick_name=t;
}
publicStringtoString(){
returnname;
}
}
publicclassExampleextendsExSuper{
publicExample(Strings,Stringt){
super(s,t);
}
publicStringtoString(){
returnname+“a.k.a”+nick_name;
}
publicstaticvoidmain(Stringargs[]){
ExSupera=newExSuper(“First”,“1st”);
ExSuperb=newExample(“Second”,“2nd”);
System.out.println(“ais”+a.toString());
System.out.println(“bis”+b.toString());
}
}
A.编译时会出现例外。
B.运行结果为:
aisFirst
bisSecond
C.运行结果为:
aisFirst
bisSeconda.k.a2nd
D.运行结果为:
aisFirsta.k.a1st
bisSeconda.k.a2nd
24.请问所有的异常类皆继承哪一个类?
()
A.java.io.ExceptionB.java.lang.ThrowableC.java.lang.ExceptionD.java.lang.Error
25.以下说法中,错误的是()
A.java语言源程序中可以有多个类的定义,但只能有一个主类,此主类是java程序运行的入口点
B.在应用程序中,主类为包含main方法的类
C.在applet中,主类为用户自定义的系统applet类的扩展类
D.主类就是public类
E.java语言源程序中可以有多个类的定义,但只能有一个public类,且类名要和java语言源程序文件名保持一致。
26.下面说法中,错误的是()
A.行注释以//开头B.块注释以/*开始和*/结束
C.java编译器忽略注释后的语句或说明D.javadoc注释不是java语言中的注释类型
27.下面java语言的标识符中,不合法的是()
A.classnameB.$memberC.56areD._variable
28.指定变量是一个类成员变量的访问修饰符是()
A.accessSpicifierB.staticC.finalD.protected
29.下面关于构造方法的描述,错误的是()
A.能为构造方法指定返回值
B.当写类时不提供它的构造方法,运行系统会自动提供缺省的构造方法,此方法没有任何参数,方法体为空。
C.构造方法与类具有相同的名字
D.Java语言支持方法名重载,所以类可以有多个构造方法,他们共享同一个名字,靠参数的的类型和数目来区分
E.构造方法用于在创建对象时对对象进行初始化。
30.关于包的描述中,不正确的是()
A.java语言中包用来组织相关的类和接口,包在物理上是一个文件夹,逻辑上代表一个分类概念
B.一个程序文件中只能有一个package语句,package语句要放在import语句的后面
C.包内的类名唯一,但不同的包中可以有相同的类名
D.引用包中的类和接口时,使用import语句
31.关于接口,下面描述不正确的是()
A.java语言中禁止多继承属性,引入接口的目的是为了用简单有效的方法实现类似于多继承的特性
B接口中可以定义大量的常量和方法,但其中的方法只是一种声明,没有具体的实现,使用接口的类自己实现这些方法
C.接口可以使用extends关键字继承上级接口声明的方法和常量,继承是单继承
D.如果接口中定义了父接口中的同名方法和常量,则父接口中的同名方法被覆盖,同名常量被隐藏。
E.接口中的常量默认具有public、final、static属性;接口中的方法默认具有public、abstract属性
F.如果一个类声明实现一个接口,但没有实现接口中的所有方法,那么这个类必须是abstract类。
32.接口A的定义如下,指出下列哪个类实现了该接口?
()
interfaceA{
intmethod1(inti);
intmethod2(intj);
}
A.classBimplementsA{
intmethod1(){}
intmethod2(){}
}
B.classB{
intmethod1(inti){}
intmethod2(intj){}
}
C.classBimplementsA{
intmethod1(inti){}
intmethod2(intj){}
}
D.classBextendsA{
intmethod1(inti){}
intmethod2(intj){}
}
33.下面程序段的执行结果是什么?
()
publicclassFoo{
publicstaticvoidmain(String[]args){
try{
return;}
finally{System.out.println("Finally");
}
}
}
A.程序正常运行,但不输出任何结果。
B.程序正常运行,并输出“Finally”。
C.编译能通过,但运行时会出现一个例外。
D.因为没有catch语句块,所以不能通过编译。
34.指出正确的表达式
A.byteb=128B.booleanisFull=nullC.longl=0xfffLD.double=0.9239d
35.运行下列程序,会产生什么结果()
publicclassXextendsThreadimplementsRunable{
publicvoidrun(){
System.out.println("thisisrun()");
}
publicstaticvoidmain(Stringargs[])
{
Threadt=newThread(newX());
t.start();
}
}
A.第一行会产生编译错误B.第六行会产生编译错误
C.第六行会产生运行错误D.程序会运行和启动
36.哪个关键字可以对对象加互斥锁?
()
A.transientB.synchronizedC.serializeD.static
37.下列哪些语句关于内存回收的说明是正确的?
()
A.程序员必须创建一个线程来释放内存
B.内存回收程序负责释放无用内存
C.内存回收程序允许程序员直接释放内存
D.内存回收程序可以在指定的时间释放内存对象
38.在java语言中,负责对字节代码解释执行的是()
A.垃圾回收器B.编译器C.解释器D.多线程机制
39.下面属于合法java标识符的是:
()
A._catB.5booksC.+staticD.-3.14159
40.在java中,表示换行符的转义字符是:
()
A.\nB./fC.’n’D.\dd
41.下面程序段的输出结果是()
StringMyStr=“Hello,”;
MyStr=MyStr+”Guys!
”;
System.out.println(MyStr);
A.Hello,Guys!
B.HelloC.Guys!
D.该程序段有语法错误
42.在java语言中,由java编译器自动导入,而无需在程序中用import导入的包是:
()
A.java.appletB.java.awtC.java.utilD.java.lang
43.下面语句哪个是正确的?
()
A.char='abc'B.longl=0xfffC.floatf=0.23D.double=0.7E-3
44.在java中,所有类的根类是:
()
A.java.lang.ObjectB.java.lang.ClassC.java.applet.AppletD.java.awt.Frame
45.在java中,用package语句说明一个包时,该包的层次结构必须是:
()
A.与文件的结构相同B.与文件目录的层次相同C.与文件类型相同D.与文件大小相同
46.下面叙述中,正确的是:
()
A.java语言的标识符是区分大小写的
B.源文件名可以与public类名不相同
C.源文件名其扩展名为.jar
D.源文件中public类的数目不限
47.下面构造方法的调用方式中,正确的是:
()
A.按照一般方法调用B.由用户直接调用
C.只能通过new自动调用D.被系统调用
48.在java中,能实现多重继承效果的方式是:
()
A.内部类B.适配器C.接口D.同步
49.int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个成员的语句是:
()
A.publicintMAX_LENGTH=100B.finalintMAX_LENGTH=100
C.publicconstintMAX_LENGTH=100D.publicfinalintMAX_LENGTH=100
50.下列关于javaapplication与applet的说法中,正确的是:
()
A.都包含main()方法B.都通过“appletviewer”命令执行
C.都通过“javac”命令编译D.都嵌入在HTML文件中执行
51.下面关于线程优先级的说法中,正确的是:
()
A.线程的优先级是不能改变的B.线程的优先级是在创建线程时设置的
C.在创建线程后的任何时候都可以设置D.B和C
52.下面哪条语句在编译时没有错误或警告?
[A]floatf=1.3;[B]charc="a";[C]byteb=257;[D]booleanb=null;[E]inti=10;
53.下面哪个选项的代码在编译时有错误或警告?
[A]importjava.awt.*;
packageMypackage;
classMyclass{}
[B]packageMyPackage;
importjava.awt.*;
classMyClass{}
[C]/*Thisisacomment*/
packageMyPackage;
importjava.awt.*;
classMyClass{}
54.下面哪个选项不是java语言的关键字或保留字?
[A]if[B]then[C]public[D]while[E]float
55.下面哪个选项不是java语言合法的标识符?
[A]2variable[B]variable2[C]_whatavariable[D]_3$[E]$anothervar
56.编译运行下面代码的结果是什么?
publicclassMyClass{
staticinti;
publicstaticvoidmain(Stringargs[]){
System.out.println(i);
}
}
[A]提示变量i没有被初始化[B]null[C]1[D]0
57.编译运行下面代码的结果是什么?
classQ{
publicstaticvoidmain(Stringargs[]){
intanar[]={1,2,3};
System.out.println(anar[1]);
}
}
[A]1[B]2[C]3[D]0
58.编译运行下面代码的结果是什么?
interfaceA{
inta=100;
publicvoidamethod();
}
classBimplementsA{
publicstaticvoidmain(Stringargs[]){
System.out.println(a);
}
}
[A]运行时输出100[B]运行时输出0[C]编译时提示有错误
59.下面代码的运行结果是什么?
inti=1;
switch(i){
case0:
System.out.println("zero");
break;
case1:
System.out.println("one");
case2:
System.out.println("two");
default:
System.out.println("default");
}
[A]one[B]one,default[C]one,two,default[D]default
60.下面哪个选项的代码在编译时有错误或警告?
[A]inti=0;
if(i){
System.out.println("Hello");
}
[B]booleanb1=true;
booleanb2=true;
if(b==b2){
System.out.println("Sotrue");
}
[C]inti=1;
intj=2;
if(i==1||j==2)
System.out.println("OK");
[D]inti=1;
intj=2;
if(i==1&&j==2)
System.out.println("OK");
61.当前目录下没有Hello.txt的情况下,运行以下程序的结果是什么?
importjava.io.*;
classMine{
publicstaticvoidmain(Stringargs[]){
Minem=newMine();
System.out.println(m.amethod());
}
publicintamethod(){
try{
FileInputStreamdis=newFileInputStream