免费Java高级程序员面试试题汇总.docx
《免费Java高级程序员面试试题汇总.docx》由会员分享,可在线阅读,更多相关《免费Java高级程序员面试试题汇总.docx(44页珍藏版)》请在冰豆网上搜索。
免费Java高级程序员面试试题汇总
下列程序中构造了一个SET并且调用其方法add(),输出结果是
publicclassA{
publicinthashCode(){return1;}
publicBooleanequals(Objectb){returntrue}
publicstaticvoidmain(Stringargs[]){Setset=newHashSet();
set.add(newA());
set.add(newA());
set.add(newA());
System.out.println(set.size());
}
}
答案:
:
1
下列程序的运行结果是
classA{
classDog{
privateStringname;
privateintage;
publicintstep;
Dog(Strings,inta)
{
name=s;
age=a;
step=0;
}
publicvoidrun(Dogfast)
{
fast.step++;
}
}
publicstaticvoidmain(Stringargs[])
{
Aa=newA();
Dogd=a.newDog("Tom",3);
d.step=25;
d.run(d);
System.out.println(d.step);
}
}
答案:
:
26
运行下列程序第行出错。
1.classOuter{
2.privateintsize=5;
3.publicObjectmakeInner(finalintfinalLocalVar){
4.intLocalVar=6;
5.classInner{
6.publicStringtoString(){
7.return("#");}}}
8.returnnewInner();}
9.}
10.publicclassOuterTest{
11.publicstaticvoidmain(String[]args){
12.Outerouter=newOuter();
13.Objectobj=outer.makeInner(56);
14.System.out.println("Theobjectis"+obj.toString());}}
答案:
:
7
下列代码不能编译的原因是
ClassA{
Privateintx;
Publicstaticvoidmain(Stringargs[])
{
newB();
}
classB{
B(){System.out.println(x);
}
}
}
答案:
因为在A的main方法中,还没有A的实例就要试图生成内部类的实例
请写出下面程序的运行结果。
publicclassTestextendsTT{
publicvoidmain(Stringargs[]){
Testt=newTest("Tom");
}
publicTest(Strings){
super(s);
System.out.println("Howdoyoudo?
");
}
publicTest(){
this("IamTom");
}
}
classTT{
publicTT(){
System.out.println("Whatapleasure!
");
}
publicTT(Strings){
this();
System.out.println("Iam"+s);
}
}
结果:
Whatapleasure!
IamTom
Howdoyoudo?
5. 给定下面的未完成的代码片断:
publicclassExample{
intx,y;
publicExample(inta){
…
x=a;
}
publicExample(inta,intb){
//和上面一个参数的构造方法做同样的操作,包括赋值
x=ay=b;
}
}
如果要用最简捷的一行代码实现"//和上面一个参数的…"注释所指出的功能,请写出你认为最合适的一行代码:
答案:
this(a)
如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,同时又能够为线程提供运行代码(run()方法),请写出该类的声明头。
你的解答:
答案:
publicclassMyFrameextendsFrameimplementsRunnable
请阅读下列程序代码,然后将程序的执行结果补充完整。
程序代码:
class throwsException
{
static void Proc(int sel) throws ArithmeticException,ArrayIndexOutOfBoundsException
{
System.out.println("In Situation"+sel);
if(sel==0){
System.out.println("no Exception caught");
return;
}
else if(sel==1){
int iArray[]=new int[4];
iArray[1]=3;
}
}
public static void main(String[] args)
{
try{
Proc(0);
Proc
(1);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Catch"+e);
}finally{
System.out.println("in Proc finally");
}
}
}
执行结果:
In Situation0
no Exception caught
__In Situation1____
in Proc finally
选择题
4.指出下列程序运行的结果B
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");
Sytem.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]='g';
}
}
Agoodandabc
Bgoodandgbc
Ctestokandabc
Dtestokandgbc
5.运行下列程序,会产生什么结果A
publicclassXextendsThreadimplementsRunable{
publicvoidrun(){
System.out.println("thisisrun()");
}
publicstaticvoidmain(Stringargs[])
{
Threadt=newThread(newX());
t.start();
}
}
A第一行会产生编译错误
B第六行会产生编译错误
C第六行会产生运行错误
D程序会运行和启动
6.要从文件"file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合?
A
AFileInputStreamin=newFileInputStream("file.dat");in.skip(9);intc=in.read();
BFileInputStreamin=newFileInputStream("file.dat");in.skip(10);intc=in.read();
CFileInputStreamin=newFileInputStream("file.dat");intc=in.read();
DRandomAccessFilein=newRandomAccessFile("file.dat");in.skip(9);intc=in.readByte();
7.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?
B
ACardLayout
BFlowLayout
CBorderLayout
DGridLayout
8.给出下面代码:
C
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[1]);
}
}
那个语句是正确的?
A编译时将产生错误;
B编译时正确,运行时将产生错误;
C输出零;
D输出空。
9.对于下列代码:
C
publicclassParent{
publicintaddValue(inta,intb){
ints;
s=a+b;
returns;
}
}
classChildextendsParent{
}
下述哪些方法可以加入类Child?
AintaddValue(inta,intb){//dosomething...}
BpublicvoidaddValue(inta,intb){//dosomething...}
CpublicintaddValue(inta){//dosomething...}
DpublicintaddValue(inta,intb)throwsMyException{//dosomething...}
10.给出下面代码:
A
publicclasstest{
staticinta[]=newa[10];
publicstaticvoidmain(Stringargs[]){
System.out.println(arr[10]);
}
}
那个选项是正确的?
A编译时将产生错误;
B编译时正确,运行时将产生错误;
C输出零;
D输出空。
看下面一段程序:
C
classAclass{
voidgo(){
System.out.println("Aclass");
}
}
publicclassBclassextendsAclass{
voidgo{
System.out.println("Bclass");
}
publicstaticvoidmain(Stringargs[]){
Aclassa=newAclass();
Aclassa1=newBclass();
a.go();
a1.go();
}
以上程序运行结果是:
AAclass
Aclass
BBclass
Bclass
CAclass
Bclass
DBclass
Aclass
9.看以下程序:
A
booleana=false;
booleanb=true;
booleanc=(a&&b)&&(!
b);
intresult=c==false?
1:
2;
这段程序执行完后,c与result的值是:
Ac=false;result=1;
Bc=true;result=2;
Cc=true;result=1;
Dc=false;result=2;
10.运行下列程序,会产生什么结果A
publicclassXextendsThreadimplementsRunable{
publicvoidrun(){
System.out.println("thisisrun()");
}
publicstaticvoidmain(Stringargs[])
{
Threadt=new Thread(newX());
t.start();
}
}
A第一行会产生编译错误
B第六行会产生编译错误
C第六行会产生运行错误
D程序会运行和启动
11.指出下列程序的运行结果B
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");
}
Adefault
Bdefault,zero
Cerrordefaultclausenotdefined
Dnooutputdisplayed那个
12.运行下列程序,会产生什么结果:
B
classOuter1{
privateinta;
voidfoo(doubled,finalfloatf){
Strings;
finalbooleanb;
classInner{
voidmethodInner(){
System.out.println("intheInner");
}
}
}
publicstaticvoidmain(Stringargs[])
{
Outer1me=newOuter1();
me.foo(123,123);
System.out.println("outer");
}
}
AintheInnerouter
Bouter
CintheInner
D编译不通过
25)在oneMethod()方法运行正常的情况下,程序段将输出什么?
D
publicvoidtest()
{
try{oneMethod();
System.out.println("condition1");
}catch(ArrayIndexOutOfBoundsExceptione)
{
System.out.println("condition2");
}catch(Exceptione)
{
System.out.println("condition3");
}finally
{
System.out.println("finally");
}
}
A)condition1
B)condition2
C)condition3
D)condition1
finally
(26)下列常见的系统定义的异常中,哪个是输入、输出异常?
B
A)ClassNotFoundException
B)IOException
C)FileNotFoundException
D)UnknownHostException
(18)有如下程序段D
if(x>0){System.out.println("first");}
elseif(x>-4){System.out.println("second");}
else{System.out.println("third");}
x的取值在什么范围内时,将打印出字符串"second"?
A)x>0
B)x>-4
C)x<=-4
D)x<=0&&x>-4
(19)下列程序的输出结果是C
publicclassfff
{
voidprintValue(intm)
{
do{System.out.println("Thevalueis"+m);}
while(--m>10)
}
publicstaticvoidmain(Stringarg[])
{
inti=10;
Testt=newTest();
t.printValue(i);
}
}
A)8
B)9
C)10
D)11
多选
1.执行下列代码后,哪个结论是正确的String[]s=newString[10];BD
As[10]为"";
Bs[9]为null;
Cs[0]为未定义
Ds.length为10
2.下面的表达式哪个是正确的?
AE
AStrings="你好";inti=3;s+=i;
BStrings="你好";inti=3;if(i==s){s+=i};
CStrings="你好";inti=3;s=i+s;
DStrings="你好";inti=3;s=i+;
E.Strings=null;inti=(s!
=null)&&(s.length>0)?
s.length():
0;
3.选出合理的标识符AC
A_sys1_lll
B2mail
C$change
Dclass
4.哪个布局管理器使用的是组件的最佳尺寸(preferredsize)AE
AFlowLayout
BBorderLayout
CGridLayout
DCardLayout
E.GridBagLayout
5.下列哪个方法可用于创建一个可运行的类?
AE
ApublicclassXimplementsRunable{publicvoidrun(){......}}
BpublicclassXimplementsThread{publicvoidrun(){......}}
CpublicclassXimplementsThread{publicintrun(){......}}
DpublicclassXimplementsRunable{protectedvoidrun(){......}}
E.publicclassXimplementsThread{publicvoidrun(){......}}
6.下面哪个方法可以在任何时候被任何线程调用?
DEF
Anotify()
Bwait()
CnotifyAll()
Dsleep()
E.yield()
F.synchronized(this)
7.构造BufferedInputStream的合适参数是哪个?
AC
ABufferedInputStream
BBufferedOutputStream
CFileInputStream
DFileOuterStream
E.File
8.下列说法正确的是BC
Ajava.lang.Clonable是类
Bjava.lang.Runnable是接口
CDouble对象在java.lang包中
DDoublea=1.0是正确的java语句
9.指出正确的表达式AB
Adoublea=1.0;
BDoublea=newDouble(1.0);
Cbytea=340;
DBytea=120;
10.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:
CD
AprivateclassMyClassextendsObject
BclassMyClassextendsObject
CpublicclassMyClass
DpublicclassMyClassextendsObject
11.指出下列哪个方法与方法publicvoidadd(inta){}为合理的重载方法。
CD
Apublicintadd(inta)
Bpublicvoidadd(longa)
Cpublicvoidadd(inta,intb)
Dpublicvoidadd(floata)
12.