java面试题经典选择题部分.docx

上传人:b****5 文档编号:7544972 上传时间:2023-01-24 格式:DOCX 页数:31 大小:28.82KB
下载 相关 举报
java面试题经典选择题部分.docx_第1页
第1页 / 共31页
java面试题经典选择题部分.docx_第2页
第2页 / 共31页
java面试题经典选择题部分.docx_第3页
第3页 / 共31页
java面试题经典选择题部分.docx_第4页
第4页 / 共31页
java面试题经典选择题部分.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

java面试题经典选择题部分.docx

《java面试题经典选择题部分.docx》由会员分享,可在线阅读,更多相关《java面试题经典选择题部分.docx(31页珍藏版)》请在冰豆网上搜索。

java面试题经典选择题部分.docx

java面试题经典选择题部分

1、给出如下代码:

classTest{

privateintm;

publicstaticvoidfun(){

//somecode...

}

}

如何使成员变量m被函数fun()直接访问?

C

A、将privateintm改为protectedintm

B、将privateintm改为publicintm

C、将privateintm改为staticintm

D、将privateintm改为intm

2、下面哪个函数是publicvoidexample(){...}的重载函数?

D

A、privatevoidexample(intm){...}

B、publicintexample(){...}

C、publicvoidexample2(){...}

D、publicintexample(intm,floatf){...}

3、给出下面的代码段:

publicclassBase{

intw,x,y,z;

publicBase(inta,intb)

{

x=a;y=b;

}

publicBase(inta,intb,intc,intd)

{

//assignmentx=a,y=b

w=d;

z=c;

}

}

在代码说明//assignmentx=a,y=b处写入如下哪个代码是正确的?

D

A、Base(a,b);

B、x=a,y=b;

C、this(a),this(b);

D、this(a,b);

4、已知如下定义:

Strings="story";

下面哪个表达式是合法的?

A

A、s+="books";

B、charc=s[1];

C、intlen=s.length;

D、Stringt=100;

5、Java中main()函数的返回值是什么?

D

A、String

B、int

C、char

D、void

6、如下哪个字串在Java中可作为自定义标识符?

A

A、$number

B、super

C、3number

D、#number

7、如下哪个不是Java中有效的关键字?

B

A、const

B、NULL

C、false

D、this

8、如下哪个不是Java中正确的整数表示?

D

A、22

B、0x22

C、022

D、22H

9、下面的代码段中,执行之后i和j的值是什么?

C

inti=1;

intj;

j=i++;

A、1,1

B、1,2

C、2,1

D、2,2

10、下面句话是正确的?

A

A>>是算术右移操作符.

B<<是算术右移操作符.

C>>>是算术右移操作符

D<<<是算术右移操作符

11、下面哪个赋值语句不是合法的?

A

A、floata=2.0

B、doubleb=2.0

C、intc=2

D、longd=2

12、下面哪个是main()函数的合法参数?

C

A、charargs[]

B、charargs[][]

C、Stringarg[]

D、Stringargs

13、已知表达式intm[]={0,1,2,3,4,5,6};

下面哪个表达式的值与数组最大下标数相等?

B

A、m.length()

B、m.length-1

C、m.length()+1

D、m.length+1

14.指出下列程序运行的结果(D)

publicclassExample{

Stringstr=newString(″good″);

char[]ch={′a′,′b′,′c′};

publicstaticvoidmain(Stringargs[]){

Exampleex=newExample();

ex.change(ex.str,ex,ch);

System.out.print(ex.str+″and″);

System.out.print(ex.ch);

}

publicvoidchange(Stringstr,charch[]){

str=″testok″;

ch[0]=′g′;

}

}

A.goodandabc B.goodandgbc

C.testokandabc D.testokandgbc

15.函数重载是指(A)

A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C.两个以上的函数名字不同,但形参的个数或类型相同

D.两个以上的函数取相同的函数名,并且函数的返回类型相同

16.在异常处理中,如释放资源、关闭文件、关闭数据库等由(C)来完成。

A.try子句     B.catch子句

C.finally子句    D.throw子句

17.下面哪条语句定义了5个元素的数组(A)

A、int[]a={22,23,24,25,12};

B、inta[]=newint(5);

C、int[5]array;

D、int[]arr;

18、已知如下的命令执行javaMyTestabc请问哪个语句是正确的?

C

A、args[0]="MyTestabc"

B、args[0]="MyTest"

C、args[0]="a"

D、args[1]='c'

19.Applet类的直接父类是(D)

A.Component类  B.Container类

C.Frame类   D.Panel类

20.对于catch子句的排列,下列哪种是正确的(B)

A.父类在先,子类在后

B.子类在先,父类在后

C.有继承关系的异常不能在同一个try程序段内

D.如何排列都可以

21.下面哪个语句不能定义一个字符变量(B)

A、charc1=’a’;B、charc2=”S”;

C、charc4=97;D、charc3=’\u0041’;

22.构造方法何时被调用(B)

A.类定义时     B.创建对象时

C.调用对象方法时  D.使用对象的变量时

23.下面的表达式中正确的是(AE)

A.Strings=″你好″;inti=3;s+=i;

B.Strings=″你好″;inti=3;if(i==s){s+=i};

C.Strings=″你好″;inti=3;s=i+s;

D.Strings=″你好″;inti=3;s=i+;

24、已知如下代码:

publicclassTest

{

longa[]=newlong[10];

publicstaticvoidmain(Stringarg[]){

System.out.println(a[6]);

}

}

请问哪个情况是正确的?

C

A、输出为null.

B、输出为0.

C、编译时出错

D、运行时出错

25、Frame的默认的布局管理器是下列哪一个(B)

A.FlowLayout       B.BorderLayout

C.GridLayout       D.CardLayout

26.下列语句片段

inta=10,b=4,c=20,d=6;

System.out.println(a++*b+c*--d);

的结果为(C)

A.144    B.28

C.140    D.不能执行

27.下列语句片段:

inta=-67,b=116,c=78;

intd=~a|b&c;

System.out.println(d)的结果为(A)

A.70    B.67

C.78    D.56

28.对象使用时,下面描述错误的是(B)

A.通过“.”运算符调用成员变量和方法

B.通过成员变量的访问权限设定限制自身对这些变量方法的调用

C.将一个对象申明为类的成员时,必须在使用前为其分配内存

D.在方法中使用对象作为参数时,采用引用调用

29.执行下列代码后,哪个结论是正确的String[]s=newString[10];B

A.s[10]为″″      B.s[9]为null

C.s[0]为未定义    D.s.length为101

30.Java编程所必须的默认引用包为(B)

A.java.sys包     B.java.lang包

C.java.new包    D.以上都不是

31.定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:

(C)

A.privateclassMyClassextendsObject

B.classMyClassextendsObject

C.publicclassMyClass

D.privateclassMyClassextendsObject

32、以下哪个方法用于定义线程的执行体?

C

A、start()

B、init()

C、run()

D、main()

E、synchronized()

33如果类中的成员变量可以被同一包访问,则使用如下哪个约束符?

D

A、private

B、public

C、protected

D、缺省

E、final

34、以下哪个约束符可用于定义成员常量?

B

A、static

B、final

C、abstract

D、finally

35.当方法遇到异常又不知如何处理时,下列哪种说法是正确的(B)

A.捕获异常    B.抛出异常

C.声明异常  D.嵌套异常

36.Java程序的执行过程中用到一套JDK工具,其中java.exe是指(C)

A.Java文档生成器  B.Java解释器

C.Java编译器    D.Java类分解器

37.下列不属于容器的是(B)

A.Window   B.TextBox

C.Panel   D.ScrollPane

38、已知如下类说明:

publicclassTest{

privatefloatf=1.0;

intm=12;

staticintn=1;

publicstaticvoidmain(Stringarg[]){

Testt=newTest();

//somecode...

}

}

如下哪个使用是正确的?

D

A、t.f

B、this.n

C、Test.m

D、Test.n

39、已知如下代码:

1:

classExample{

2:

Stringstr;

3:

publicExample(){

4:

str="example";

5:

}

6:

publicExample(Strings){

7:

str=s;

8:

}

9:

}

10:

classDemoextendsExample{

11:

}

12:

publicclassTest{

13:

publicvoidf(){

14:

Exampleex=newExample("Good");

15:

Demod=newDemo("Good");

16:

}}

哪句语句会导致错误?

E

A、line3

B、line6

C、line10

D、line14

E、line15

40、已知如下类定义:

classBase{

publicBase(){//...}

publicBase(intm){//...}

publicvoidfun(intn){//...}

}

publicclassChildextendsBase{

//membermethods

}

如下哪句可以正确地加入子类中?

D

A、privatevoidfun(intn){//...}

B、voidfun(intn){//...}

C、protectedvoidfun(intn){//...}

D、publicvoidfun(intn){//...}

41在如下源代码文件Test.java中,哪个是正确的类定义?

B

A、publicclasstest{

publicintx=0;

publictest(intx)

{

this.x=x;

}

}

B、publicclassTest{

publicintx=0;

publicTest(intx){

this.x=x;

}

}

C、publicclassTestextendsT1,T2{

publicintx=0;

publicTest(intx){

this.x=x;

}

}

D、protectedclassTestextendsT2{

publicintx=0;

publicTest(intx){

this.x=x;

}

}

2、当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪个layout?

A

A、FlowLayout

B、CardLayout

C、BorderLayout

D、GridLayout

43、如下哪个方法可以从WindowEvent获取事件源?

C

A、getFrame()

B、getID()

C、getSource()

D、getEvent()

44监听器接口的方法返回值是什么?

C

A、int

B、String

C、void

D、Object

45下面哪个方法与applet的显示无关?

B

A、update()B、draw()

C、repaint()D、paint()

46下面哪个不是Java中的容器?

B

A、ScrollPaneB、Canvas

C、DialogD、Applet

47在Java中,属于整数类型变量的是(C)

A.single   B.double

C.byte   D.char

48下面哪个描述是正确的(C)

A、Applet程序中不需要main()方法,也不能有

B、Application程序中可以没有main()方法。

C、Applet程序中可以不定义init()方法

D、Application程序中必须有run()方法

49给出一段程序,试判断哪个是正确的结果(B)

publicclassrtExcept{

publicstaticvoidthrowit(){

System.out.print(“throwit”);

thrownewRuntimeException();}

publicstaticvoidmain(String[]aa){

try{

System.out.print(“hello“);

throwit();}

catch(Exceptionre){

System.out.print(“caught”);}

finally{

System.out.print(“finally”);}

System.out.print(“after”);

}

}

A、hellothrowitcaught

B、hellothrowitcaughtfinallyafter

C、hellothrowitRuntimeExceptionafter

D、hellothrowitcaughtfinallyafterRuntimeException

50.下列哪个方法可用于创建一个可运行的类(A)

A.publicclassXimplementsRunable{publicvoidrun(){......}}

B.publicclassXimplementsThread{publicvoidrun(){......}}

C.publicclassXimplementsThread{publicintrun(){......}}

D.publicclassXimplementsRunable{protectedvoidrun(){......}}

1.Whichstatementistrue?

A.Ananonymousinnerclassmaybedeclaredasfinal.

B.Ananonymousinnerclasscanbedeclaredasprivate.

C.Ananonymousinnerclasscanimplementmultipleinterfaces.

D.Ananonymousinnerclasscanaccessfinalvariablesinanyenclosingscope.

E.Constructionofaninstanceofastaticinnerclassrequiresaninstanceoftheenclosingouterclass.

答案是D

anonymousinnerclasscannotdeclaredwithanymodifyer.

andcanonlyimplementoneinterface

2.Whichstatementaboutstaticinnerclassesistrue?

A.Ananonymousclasscanbedeclaredasstatic

B.Astaticinnerclasscannotbeastaticmemberoftheouterclass

C.Astaticinnerclassdoesnotrequireaninstanceoftheenclosingclass

D.Instancemembersofastaticinnerclasscanbereferencedusingtheclassnameofthestaticinnerclass

答案是C

becausestatic,itneedn'tinstanceofenclosingouterclass

andit'sinstancememberneedit'sinstance.

java中都是按值传递的,所以a,b还是指向原来的地址空间,经过operate操作后,x更改了该地址空间的值,而y没有.

publicclassFoo{

publicstaticvoidmain(Stringsgf[]){

StringBuffera=newStringBuffer("A");

StringBufferb=newStringBuffer("B");

operate(a,b);//方法调用完以后,a对象的内容为:

AB,b对象的内容为:

B

System.out.println(a+","+b);

}

staticvoidoperate(StringBufferx,StringBuffery){

//对象传递进来以后又分别复制了一个x和y对象x'和y',

x'和x指向同一个对象。

y'和y指向同一个对象。

x.append(y);//所以执行此步操作以后,main中的x对象的内容也变化了。

//因为本来就是指向同一个对象吗!

y=x;//执行此步操作以后,main中的y对象的内容没变!

//因为此y费彼y也!

}

}

classValHold{

publicinti=10;

}

publicclassObParm{

publicstaticvoidmain(Stringargv[]){

ObParmo=newObParm();

o.amethod();

}

publicvoidamethod(){

inti=99;

ValHoldv=newValHold();

v.i=30;

another(v,i);

System.out.println(v.i);

}//Endofamethod

publicvoidanother(ValHoldv,inti){

i=0;

v.i=20;

ValHoldvh=newValHold();

v= vh;

System.out.println(v.i+""+i);

}//Endofanother

}

1)10,0,30

2)20,0,30

3)20,99,30

4)10,0,20

答案是4)

首先必须明白一点

参数传递到方法内的时候实际上是复制了一份

而且java并不直接处理对象,而是通过对象参考来处理的。

publicstaticvoidmain(Stringargv[]){

ObParmo=newObParm();

o.amethod();

}

publicvoidamethod(){

inti=99;

ValHoldv=newValHold();

v.i=30;

another(v,i);

System.out.println(v.i);

}//Endofamethod

publicvoidanother(ValHoldv,inti){

//参数v,i传进来后进行复制,并且两个v都是指向同一个对象

i=0;

v.i=20;//这里就导致所指向的对象的i值变化

ValHoldvh=newValHold();

v= vh;//这里改变了v的对象参考,指向新的一个ValHold对象

System.out.println(v.i+""+i);

}//Endofanother

}

首先,可以肯定c是错误的。

因为当一个thread被notify后,它只是从waitpool转向object'slockpool,不一定马上能够拿到lock

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1