Java复习题2及答案.docx
《Java复习题2及答案.docx》由会员分享,可在线阅读,更多相关《Java复习题2及答案.docx(20页珍藏版)》请在冰豆网上搜索。
Java复习题2及答案
1、已知有一个多线程类myThread,除run方法外还包含一个方法voiddisp()。
以下说法正确的是【】
A)myThreadmt=newmyThread();mt.start();mt.disp();运行完线程体run方法后再运行disp()方法
B)myThreadmt=newmyThread();mt.disp();mt.start();运行完disp()后才能启动线程体run
C)myThreadmt=newmyThread();mt.start();mt.disp();线程体run一定会在disp结束前结束。
D)myThreadmt=newmyThread();mt.start();mt.disp();mt.start()和mt.disp()两条命令,哪条放在前面哪条放在后面运行结果一样。
2、下列选项中关于java中super关键字的说法错误的是(B)
A)super关键字是在子类对象内部指代其父类对象的引用
B)super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C)子类可以通过super关键字调用父类的方法
D)子类可以通过super关键字调用父类的属性
3、下列选项中关于java中this关键字的说法错误的是(B)
A)this是在对象内部指代对象自身的引用
B)this关键字可以在类中的任何位置使用
C)this只和特定的对象关联,而不和类关联
D)同一个类中的不同对象有不同的this
4、在以下java程序的方法中,两个方法之间属于方法重载的是(AC)。
(选择二项)
A)intf1(){}
Intf1(inta){}
B)voidf1(inta){}
Intf1(inta){}
C)voidf1(){}
Intf1(inta){}
D)intf1(intb){}
intf1(inta){}
5、分析下面java代码,编译运行结果是(C)。
PublicclassTest{
Intnumber;
Stringstrname;
Test(intnum,Stringname){
Number=num;
Strname=name;
System.out.println(“学号:
”+number+”姓名:
”+name);
}
Publicstaticvoidmain(String[]args){
TestobjTest1=newTest();
TestobjTest2=newTest(1,“张三”);
}
}
a)运行结果为:
学号:
1姓名:
张三
b)运行结果为:
学号:
null姓名:
null
学号:
1姓名:
张三
c)程序出现编译错误
d)程序出现运行时异常
6、Java中使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。
(选择一项)
Aprivate
Bprotected
Cprivateprotected
Dpublic
7、分析下面的Java程序,编译运行结果为(D)
PublicclassTest{
Publicstaticvoidmain(String[]args){
try{
thrownewNullPointerException();
}catch(Exceptione){
System.out.println(“throwException”);
}
}
}(选择一项)
A编译出错
B正常运行无输出结果
C运行出错
D输出:
throwException
8、Java中,在如下所示的Test类中,共有(C)个构造方法
publicclassTest{
privateintx;
publicTest(){
x=34;
}
publicvoidTest(doublef){
this.x=(int)f;
}
publicTest(Strings){
}
}(选择一项)
A0
B1
C2
D3
9、分析下面的Java代码段,则选项中(B)方法无法在Child类中定义。
publicclassParent{
publicintaddValue(inta,intb){
returna+b;
}
}
classChildextendsParent{
//在此处定义方法
}(选择一项)
ApublicintaddValue(inta,intb){
returna+b;
}
BpublicintaddValue(inta,intb){}
CpublicintaddValue(inta){
returna;
}
DpublicintaddValue(doublea,doubleb){
return(int)a+(int)b;
}
10、小张使用JAVA编写了一个类,如下所示,选项中可以作为它的构造方法的是()。
publicclassOrange{}(选择二项)
A、voidOrange(){}
B、Orange(Stringname){}
C、Orange(){}
11、在JAVA的异常处理模型中,下列类在多重catch中同时使用时,()应该最后列出。
(选择一项)
A、ArithmeticException
B、NullPointerException
C、IOException
D、Exception
12、在Java接口中,下列选项中属于有效的方法声明是()。
(选择二项)
A、publicvoidaMethod()
B、voidaMethod();
C、voidaMethod(){}
D、privatevoidaMethod();
13、建立文件"file.txt"的字节输入流的语句是:
()
A.InputStreamin=newFileInputStream("file.txt");
B.FileInputStreamin=newFileInputStream(newFile("file.txt"));
C.InputStreamin=newFileReader("file.txt");
14、给定如下Java程序,这段程序编译运行后的输出结果是()。
(选择一项)
publicclassTest{
publicstaticvoidaMethod()throwsException{
try{
thrownewException();
}finally{
System.out.print(“Finally”);
}
}
publicstaticvoidmain(String[]args){
try{
aMthod();
}catch(Excptione){
System.out.print(“Exception”);
}
System.out.print(“Finished”);
}
}
A、FinallyException
B、Finally
C、ExceptionFinallyFinished
D、FinallyExceptionFinished
15、Java中,如果类C是B的子类,类B是类A的子类,那么下面描述正确的是()
(选择一项)
a)C不仅继承了B中公有成员,同时也继承了A中的公有成员
b)C只继承了B中的成员
c)C只继承了A中的成员
d)C不能继承A或B中的成员
16、下面关于Java接口的说法错误的是()。
(选择一项)
a)一个Java接口是一些方法特征的集合,但没有方法的实现
b)Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为
c)Java接口中可以声明私有成员
d)Java接口不能被实例化
17、下面语句正确的是:
()
A.RandomAccessFileraf=newRandomAccesssFile(“myfile.txt”,”rw”);
B.RandomAccessFileraf=newRandomAccesssFile(newDataInputStream());
C.RandomAccessFileraf=newRandomAccesssFile(“myfile.txt”);
D.RandomAccessFileraf=newRandomAccesssFile(newFile(“myfile.txt”));
18、在Java中,类Test的代码如下所示,假设类Test的实例化对象名为t,则选项()中的语句能正确调用Test类的方法。
ClassTest
{
publicintchange()
{
System.out.println(“Noparameters”);
return0;
}
publicvoidchange(doublem)
{
System.out.println(“parameteris:
”+m);
}
}
(选择一项)
a)Test.change(15.2f)
b)Test.change();
c)t.change(250.5);
d)inta=t.change(13)
19、有类Copy编译后产生如下错误提示,需要修改的地方是【】
importjava.io.*;
运行时提示错误为:
Copy.java:
11:
可能损失精度
publicclassCopy {
publicstaticvoidmain(String[]args)throwsException{
FileinputFile=newFile("in.txt");
FileoutputFile=newFile("out.txt");
FileReaderin=newFileReader(inputFile);①
FileWriterout=newFileWriter(outputFile);
charc;②
while((c=in.read())!
=-1)③
out.write(c);④
in.close();
out.close();
}
}
A)①
B)②
C)③
D)④
20、在Java类中,使用以下(D)声明语句来定义公有的int型常量MAX。
(选择一项)
a)publicintMAX=100;
b)finalintMAX=100;
c)publicstaticintMAX=100;
d)PublicstaticfinalintMAX=100;
21、在Java中,已定义两个接口B和C,要定义一个实现这两个接口的类,一下语句正确的是(C)。
(选择一项)
a)interfaceAextendsB,C
b)interfaceAimplementsB,C
c)classAimplementsB,C
d)classAimplementsB,implementsC
22、分析如下所示的JAVA代码,其中this关键字的意思是(B)(选择一项)
publicclassTest{
privateStringname;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;//this关键字所在的行
}
}
a)Test类
b)是在Test类的内部指代自身的引用
c)Test类的对象引用其他Test类对象
d)指所在的方法
23、在Java中,有如下两个类Student和Person,如果Student是Person的子类,则下列声明对象X的语句中错误的是(C)
A.Personx=newStudent();
B.Personx=newPerson();
C.Studentx=newPerson();
D.Studentx=newStudent();
24、给定如下Java程序,这段程序编译运行后的输出结果是(D)。
(选择一项)
publicclassTest{
publicstaticvoidaMethod()throwsException{
try{
thrownewException();
}
finally{
System.out.println("Finally");
}
}
publicstaticvoidmain(String[]args){
try{
aMethod();
}catch(Exceptione){
System.out.println("Exception");
}
System.out.println("Finished");
}
}
}
a)FinallyException
b)Finally
c)ExceprionFinallyFinished
d)Finally
Exception
Finished
25、下列创建InputStreamReader对象的方法中哪些是正确的方法?
A.newInputStreamReader(newFileInputStream(“data”));
B.newInputStreamReader(newFileReader(“data”));
C.newInputStreamReader(newBufferedReader(“data”));
D.newInputStreamReader(“data”);
E.newInputStreamReader(System.in);
26、.Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是(A)(选择一项)
AC不仅继承了B中的成员,同样也继承了A中的成员
BC只继承了B中的成员
CC只继承了A中的成员
DC不能继承A或B中的成员
27、分析选项中关于Java中this关键字的说法正确的是(A)(选择一项)
Athis关键字是在对象内部指代自身的引用
Bthis关键字可以在类中的任何位置使用
Cthis关键字和类关联,而不是和特定的对象关联
D同一个类的不同对象公用一个this
28.在Java中,下列(AC)可以成为类Orange的构造方法(选择二项)
ApublicOrange(){……}
BpublicvoidOrange(){…..}
CpublicOrange(Strings){……}
DpublicStringOrange(Strings){……}
29、给定如下Java代码片段,则下列调用方法正确的是(BC)(选择二项)
Publicintcount(inti)throwsException
{
If(i==0)
ThrownewException(“参数不正确!
”);
Return20/I;
}
ApublicvoiduseCount()
{
Count(0);
}
BpublicvoiduseCount()throwsException{
Count(0);
}
CpublicvoiduseCount(){
Try{
Count(0);
}
Catch(Exceptione){}
}
DpublicvoiduseCount(){
Try{
Count(10);
}
}
30、在JAVA的异常处理模型中,能单独和finally语句一起使用的块是(A)。
a)try
b)catch
c)throw
d)throws
31、在JAVA中,Object类是所有类的父类,用户自定义类默认扩展自Object类,下列选项中的(D)方法不属于Object类的方法。
a)equals(Objectobj)
b)getClass()
c)toString()
d)trim()
32、给定如下Java代码,关于super的用法,以下描述正确的是(C)C)。
ClassCextendsB{
PublicC(){
Super();
}
}
a)用来调用类B中定义的super()方法
b)用来调用类C中定义的super()方法
c)用来调用类B的无参构造方法
d)用来调用类B中第一个出现的构造方法
33、在Java中,类Test的代码如下所示,假设类Test的实例化对象名为t,则选项中的语句能正确调用Test类的方法。
C
ClassTest{
Publicintchange(){
System.out.println(“Noparameters”);
Return0;
}
Publicvoidchange(doublem){
System.out.println(“parameteris:
”+m);
}
}
e)Test.change(15.2f)
f)Test.change();
g)t.change(250.5);
h)inta=t.change(13)
34、给定如下Java代码,编译运行时将输出(A)
classBase{
inti=1;
publicvoidamethod(){
System.out.println(“Base.amethod”);
}
Base(){
amethod();
}
}
publicclassDescendextendsBase{
inti=-1;
publicvoidamethod()
{
System.out.println(“Descend.amethod()”);
}
publicstaticvoidmain(String[]args){
Baseb=newDescend();//父类引用指向子类实例时:
只能访问父类中的属性和方法,如果子类重写父类的方法,则访问的是子类中重写的方法,不能访问子类特有的成员
System.out.println(b.i);
b.amethod();
}
}
a)Base.amethod()
-1
Descend.amethod()
b)Descend.amethod()
1
Descend.amethod()
c)1
Descend.amethod()
d)Base.amethod()
1
Descend.amethod()
35、在Java中,下面对于构造函数的描述正确的是()。
(选择一项)
a)类必须显示定义构造函数
b)构造函数的返回类型是void
c)构造函数和类有相同的名称,并且不能带任何参数
d)一个类可以定义多个构造函数
36、下列选项中关于Java中super关键字的说法正确的是()。
(选择一项)
a)super关键字是在子类对象内部指代其父类对象的引用
b)super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
c)子类通过super关键字只能调用父类的方法,而不能调用父类的属性
d)子类通过super关键字只能调用父类的属性,而不能调用父类的方法
d)三层结构可以充分发挥团队协作开发的优势
37、在Java接口中,下列选项中有效的方法声明是()。
(选择二项)
a)publicvoidaMethod()
b)voidaMethod();
c)voidaMethod(){}
d)privatevoidaMethod();
38、下面的Java程序编译运行结果是()
InterfaceA{
Intx=0;
}
ClassB{
Intx=1;
}
ClassCextendsBimplementsA{
PublicvoidpX(){
System.out.println(super.x);
}
Publicstaticvoicmain(String[]args){
NewC().pX();
}
}
a)产生运行期错误
b)产生编译期错误
c)程序运行,输出结果为1
d)程序运行,输出结果为0
39、分析如下Java代码,编译运行后将输出()。
(选择一项)
publicclassTest{
publicTest(){}
staticvoidprint(ArrayListal){
al.add
(2);
al=newArrayList();
al.add(3);
al.add(4);
}
publicstaticvoidmain(String[]args){
Testtest=newTest();
ArrayListal=newArrayList();
al.add
(1);
print(al);
System.out.println(al.get
(1));
}
}
a)1
b)2
c)3
d)4
40、在Java中,关于构造方法,下列说法错误的是().(选择一项)
A.构造方法的名称必须与类名相同
B.构造方法可以带输入参数
C.构造方法不可以重载
D.构造方法不能带返回参数
41、给定如下所示的JAVA代码,则运行时,会产生()类型的异常.(选择一项)
Strings=null;
s.concat("abc");
A.ArithmeticException
B.NullPointerException
C.IOException
D.ClassNotFoundException
42、给定java代码如下所示,在A处新增下列()方法,是对cal方法的重载
PublicclassTest
{
Publicvoidcal(intx,inty,intz)
{
}
//A
}
a)publicintcal(intx,inty,floatz){return0;}
b)publicintcal(intx,inty,intz){return0;}
c)publicvoidcal(intx,intz){}
d)publicviodcal(intz,inty,intx){}
43、在java中,已定义接口A