您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > JAVA笔试题精华版
JAVA笔试题精华版publicclassTest2{publicstaticvoidmain(String[]args){Floata=newFloat(3.4);System.out.println(a.SIZE);a=newFloat(34000);System.out.println(a.SIZE);}}让我们来看看此程序会输出什么呢?我们先来看看JDK的解释吧.publicstaticfinalintSIZEThenumberofbitsusedtorepresentafloatvalue.意思是说:通常去描述一个float值的位数.这个是一个常量,来看看源码吧:publicstaticfinalintSIZE=32;finalint变量一旦被定义就不能被改变~1.写出下面代码的结果publicclassTestString{publicstaticvoidlink(Stringa){a+=World;}publicstaticvoidmain(String[]args){Stringa=Hello;link(a);System.out.println(a);}}答:这道题考两个方面:1).String对象的内容是不能改变的,a+=World并不是把a所指对象改变,而是先生成一个临时String对象,其值为a+World,然后在把这个临时对象赋给a.2).Java中函数参数传递方式为Callbyvalue,link方法中会生产a的一个拷贝,同样指向a所指的对象,综合以上两点,得出结果为Hello2.写出下面代码的结果System.out.println(ja+va==java);答:==用来比较对象的引用,而equals()用来比较对象的内容,但是如果是字符串常量,用==也可以比较内容是否相等,ja+va和java都是字符串常量,因此结果为true同理,下面代码结果也是truefinalStringstr=java;System.out.println(str==java)1.选出用法错误的:a:Stirnga=GoneWithWind;Stringt=Wind;Stringm;m=a-t;B:Stirnga=GoneWithWind;Stringm;m=a[3]+one;C:Stirnga=GoneWithWind;Stingm;m=a.toUpperCase();D:不记得了选AB.2.选出能正确赋值的:publicclassA{privateinta;publicvoidchange(intm){returnm;}}publicclassBextendsA{publicintb;publicstaticvoidmain(){Aaa=newA();Bbb=newB();intk;//px}}在px处可以正确赋值的有:Ak=m;Bk=b;Ck=aa.a;Dk=bb.change(30);Ek=bb.a选C3.此程序会输出什么?packagecom;classA{publicA(){a1();}publicvoida1(){System.out.println(A-a1);}}publicclassBextendsA{intbb=0;publicB(){bb=1000;}publicvoida1(){System.out.println(bbis+bb);System.out.println(B-a1);}publicstaticvoidmain(String[]args){newB();}}答案:bbis0B-a1看看执行顺序就明白了.packagecom;classA{//3publicA(){a1();}publicvoida1(){System.out.println(A-a1);}}publicclassBextendsA{intbb=0;//2publicB(){//5bb=1000;}//4publicvoida1(){System.out.println(bbis+bb);System.out.println(B-a1);}publicstaticvoidmain(String[]args){//1newB();}}在方法被a1()被重写的情况下,父类的a1是没有机会被调用的.postedon2007-12-1510:43々上善若水々阅读(235)评论(3)编辑收藏所属分类:Java笔试与面试Comments#re:JAVA笔试题(金山软件)[未登录]lovejava比较喜欢面试题.Posted@2007-12-1611:21回复更多评论#re:JAVA笔试题(金山软件)[未登录]古风publicclassA{publicinta;publicintchange(intm){returnm;}publicA(){System.out.println(constructA);a1();}publicvoida1(){System.out.println(A-a1);}}publicclassBextendsA{intbb=0;publicB(){System.out.println(constructB);bb=1000;System.out.println(bb=+bb);}publicvoida1(){System.out.println(bbis+bb);System.out.println(B-a1);}publicstaticvoidmain(String[]args){newB();}}执行结果:constructAbbis0B-a1constructBbb=1000.publicclassTest{publicstaticvoidchangeStr(Stringstr){str=welcome;}publicstaticvoidmain(String[]args){Stringstr=1234;changeStr(str);System.out.println(str);}}此题结果为:1234;比较简单分析下内存就行了.2.publicclassForTest{staticbooleanfoo(charc){System.out.println(c);returntrue;}publicstaticvoidmain(String[]args){inti=0;for(foo('A');foo('B')&&(i2);foo('C')){i++;foo('D');}}}此题结果为:ABDCBDCB这道题考查的for循环的执行顺序.for(inti=0;i10;i++){}首先先执行inti=0;注意这个只是初始化一次,就是在第一次的时候.接着执行i10;然后执行方法体{}里面的内容,最后才执行i++;第二次及以后就直接执行i10;然后方法体;最后i++;如此顺序直到结束为止.3.1.classA{2.protectedintmethod1(inta,intb){return0;}3.}WhichtwoarevalidinaclassthatextendsclassA?(Choosetwo)A.publicintmethod1(inta,intb){return0;}B.privateintmethod1(inta,intb){return0;}C.privateintmethod1(inta,longb){return0;}D.publicshortmethod1(inta,intb){return0;}E.staticprotectedintmethod1(inta,intb){return0;}此题考查的是继承重写问题.当一个子类重写父类的方法时,重写的方法的访问权限必须大于等于父类的访问权限.在此题中父类中的方法访问权限为protected,子类只能是protected或public.这时A是符合题意的.由于选项C的形参和父类的不一样,没有重写的效果,所以在子类出现也是没问题的.所以此题选:AC4.1.publicclassOuter{2.publicvoidsomeOuterMethod(){3.//Line34.}5.publicclassInner{}6.publicstaticvoidmain(String[]argv){7.Outero=newOuter();8.//Line89.}10.}WhichinstantiatesaninstanceofInner?A.newInner();//Atline3B.newInner();//Atline8C.newo.Inner();//Atline8D.newOuter.Inner();//Atline8//newOuter().newInner()此题选A.内部类的实例化可以在普通方法里也可以在static方法里实例化.如下:packagecom.test.a;publicclassOuter{Inneri=newOuter.Inner();publicvoidmethod(){newInner();}publicclassInner{}publicstaticvoidmain(String[]args){Outero=newOuter();Inneri=o.newInner();}staticvoida(){Outero=newOuter();Inneri=o.newInner();}}publicclassJtest{intm=1;inti=3;voidJtest(){m=2;i=4;}publicstaticvoidmain(String[]args){Jtestapp=newJtest();System.out.println(app.m+,+app.i);}}写出输出.结果是1,3;因为在这里voidJtest();并没有并调用,它只是一个方法,而非构造方法,这样的编写是有警告的,不过可以运行.publicclassJtest{intm=1;inti=3;Jtest(){m=2;i=4;}publicstaticvoidmain(String[]args){Jtestapp=newJtest();System.out.println(app.m+,+app.i);}}写出输出:结果是2,4;调用了构造方法,不加修饰符,默认访问权限是packageaccess,在Java里没有关键字表示,就是包内的能访问,包外就不行了(即使导入也不行).publicclassTest{staticvoidoper(intb){b=b+100;}publicstaticvoidmain(String[]args){inta=99;oper(a);System.out.println(a);}}输出为99.我们来分析一下内存:inta=99;首先在栈里面开辟一块空间保存a比如:a:xxxx然后调用oper(a);这时把a的值99赋给intb;b在内存里也开辟了自己的空间,此时值也是99.然后执行oper(a);方法体,b=b+100;此时b的值为199,a的值为99.publicclassTest{publicstaticvoidmain(String[]args){Stringa=newString(A);Stringb=newString(B);oper(a,b);System.out.print(a+,+b);}staticvoidoper(Stringc,Stringd){c.concat(B);d=c;}}此程序输出:A和B.原因就是String是final类型的.并不会被改变.publicclassTest{publicstaticvoidmain(String[]args){Stringa=newString(A);Stringb=newString(B);a.concat(aa);System.out.println(a+,+b);}}这个还是会输出A,B原因同上.packageintervie;pub
本文标题:JAVA笔试题精华版
链接地址:https://www.777doc.com/doc-3080807 .html