java面试题经典选择题部分文档格式.docx
《java面试题经典选择题部分文档格式.docx》由会员分享,可在线阅读,更多相关《java面试题经典选择题部分文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
![java面试题经典选择题部分文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/24/86af542b-2ff1-4338-97a6-9dd200d3ef5c/86af542b-2ff1-4338-97a6-9dd200d3ef5c1.gif)
C、intlen=s.length;
D、Stringt=100;
5、Java中main()函数的返回值是什么?
A、String
B、int
C、char
D、void
6、如下哪个字串在Java中可作为自定义标识符?
A、$number
B、super
C、3number
D、#number
7、如下哪个不是Java中有效的关键字?
B
A、const
B、NULL
C、false
D、this
8、如下哪个不是Java中正确的整数表示?
A、22
B、0x22
C、022
D、22H
9、下面的代码段中,执行之后i和j的值是什么?
inti=1;
intj;
j=i++;
A、1,1
B、1,2
C、2,1
D、2,2
10、下面句话是正确的?
A>
>
是算术右移操作符.
B<
<
C>
是算术右移操作符
D<
11、下面哪个赋值语句不是合法的?
A、floata=2.0
B、doubleb=2.0
C、intc=2
D、longd=2
12、下面哪个是main()函数的合法参数?
A、charargs[]
B、charargs[][]
C、Stringarg[]
D、Stringargs
13、已知表达式intm[]={0,1,2,3,4,5,6};
下面哪个表达式的值与数组最大下标数相等?
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请问哪个语句是正确的?
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=″你好″;
if(i==s){s+=i};
C.Strings=″你好″;
s=i+s;
D.Strings=″你好″;
s=i+;
24、已知如下代码:
publicclassTest
longa[]=newlong[10];
publicstaticvoidmain(Stringarg[]){
System.out.println(a[6]);
请问哪个情况是正确的?
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];
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、以下哪个方法用于定义线程的执行体?
A、start()
B、init()
C、run()
D、main()
E、synchronized()
33如果类中的成员变量可以被同一包访问,则使用如下哪个约束符?
A、private
B、public
C、protected
D、缺省
E、final
34、以下哪个约束符可用于定义成员常量?
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();
如下哪个使用是正确的?
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("
16:
}}
哪句语句会导致错误?
E
A、line3
B、line6
C、line10
D、line14
E、line15
40、已知如下类定义:
classBase{
publicBase(){//...}
publicBase(intm){//...}
publicvoidfun(intn){//...}
publicclassChildextendsBase{
//membermethods
如下哪句可以正确地加入子类中?
A、privatevoidfun(intn){//...}
B、voidfun(intn){//...}
C、protectedvoidfun(intn){//...}
D、publicvoidfun(intn){//...}
41在如下源代码文件Test.java中,哪个是正确的类定义?
A、publicclasstest{
publicintx=0;
publictest(intx)
this.x=x;
B、publicclassTest{
publicintx=0;
publicTest(intx){
C、publicclassTestextendsT1,T2{
publicTest(intx){
D、protectedclassTestextendsT2{
publicTest(intx){
this.x=x;
2、当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪个layout?
A、FlowLayout
B、CardLayout
C、BorderLayout
D、GridLayout
43、如下哪个方法可以从WindowEvent获取事件源?
A、getFrame()
B、getID()
C、getSource()
D、getEvent()
44监听器接口的方法返回值是什么?
A、int
B、String
C、void
D、Object
45下面哪个方法与applet的显示无关?
A、update()B、draw()
C、repaint()D、paint()
46下面哪个不是Java中的容器?
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并不直接处理对象,而是通过对象参考来处理的。
//参数v,i传进来后进行复制,并且两个v都是指向同一个对象
//这里就导致所指向的对象的i值变化
//这里改变了v的对象参考,指向新的一个ValHold对象
首先,可以肯定c是错误的。
因为当一个thread被notify后,它只是从waitpool转向object'
slockpool,不一定马上能够拿到lock