应聘Android开发工程师-Java笔试部分班级:姓名:分数:1:本试卷为高难度试题,大部分摘自华为,中兴,腾讯,百度,阿里巴巴等试题2:知识点涵盖Java基础,面向对象,异常,多线程,输入输出流,集合,数据结构与算法3:注意本试卷分满分为100分,60分为及格分数线4:本试卷分为以下部分:选择题,简答题,改错与分析题,编程算法题5:本试卷时间为100分钟,请抓紧时间做题一:选择题【有四个选项,只有一个选项正确,每道题1.5分,共20道,总计30分】【】1:下面的表达式错误的是A:floatf=(1.9+0.1)/(int)1.0B:floatf=1.0FC:floatf=(float)1.0FD:floatf=(int)(0.73+0.27);【】2:设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是A:把x和y按从大到小排列B:把x和y按从小到大排列C:无确定结果D:交换x和y中的值【】3:请写出下面程序运行的结果()intx=0;inty=1;inta=x+++++x;intb=y-----y;System.out.println(++a+b++);A:3B:4C:5D:6【】4:选择下列程序运行的结果inttotal=0;for(inti=0,j=5;total10||j3;++i,--j){total+=(i+j);System.out.println(total);}A:结果为5,因为一个i自加,一个j自减抵消等于没有自加B:结果为10,因为正常运算了C:有语法错误,不能写多个变量D:有语法错误,条件表达式不能写多个【】5:请问总共创建了多少个对象?Stringaa,b,c;aa=bb;b=dd+aa;c=cc+b+aa;StringBufferd=newStringBuffer(c);A:4B:5C:7D:8【】6:接口A中有2个方法,接口B中有2个方法,以下正确的是()A:若接口C继承A,B两个接口,则C一定继承了四个方法B:若类C实现接口A,B,则C中必须至少实现A、B中各一个方法C:若类C要继承接口A,B,则必须要定义接口D来继承接口A、B,由类C实现接口D,才能达到目的D:若抽象的接口C继承了接口A,B;抽象的D类实现C接口,此时必须要实现累加接口中的所有方法【】7:关于类,抽象,接口,继承综合说法错误的是?A:类与类之间有关联,继承,聚合的关系;B:抽象类可以继承实例类,抽象类可以实现接口,抽象接口可以继承多个接口C:抽象类是类和接口的并集与接口继承的补集D:在应用开发中,功能类的继承是平行结构,实现功能的接口是树型结构【】8:请判断下面程序运行的结果:publicclassParamTest{intnum=1;publicvoidchange(){num=2;}publicvoidchange(intnum){num=3;}publicvoidchange(ParamTestpt){pt.num=4;}publicstaticvoidmain(String[]args){ParamTestpt=newParamTest();intnum=5;pt.change();System.out.println(1-:+pt.num);pt.change(num);System.out.println(2-:+pt.num);pt.change(pt);System.out.println(3-:+pt.num);}A:B:C:D:1-:11-:21-:21-:22-:52-:52-:22-:53-:42-:53-:43-:4【】9:下面方法不可以共存的是:()已知:classA{publicA(){}publicvoidA(){}publicvoidA(intx){}}classBextendsA{//填入一个方法}A:publicvoidA(){}B:publicvoidA(intx,inty){}C:publicintA(intx,chary){returnx+y;}D:publicStringA(intx){returnhello+x;}【】10:已知类Foo的定义如下:publicclassFoo{intvalue;Foo(intvalue){this.value=value;}}运行下面程序段:Foo[]a1={newFoo(1),newFoo(2),newFoo(3)};Foo[]a2=newFoo[a1.length];System.arraycopy(a1,0,a2,0,a1.length);System.out.println((a1==a2)+“,”+(a1[1]==a2[1]));控制台输出的结果是()。A.false,falseB.false,trueC.true,trueD.true,false【】11:哪种说话阐明了垃圾收集和终结化机制锁承诺的行为?()A对象直到没有任何引用指向自己时才会立即被销毁B对一个对象调用的finalize()方法永远不会多于一次C适用于收集的对象会最终由垃圾收集器销毁D对象一但适用于垃圾收集,就再无法由存活线程访问了【】12:下面执行的结果是staticbooleanloop(charc){System.out.print(c);returntrue;}publicstaticvoidmain(String[]args){inti=0;for(loop('A');loop('B')&&(i2);loop('C')){i++;loop('D');}}A.ABDCBDCBB.ABCDABCDC.Compilationfails[编译失败].D.Anexceptionisthrownatruntime[抛出一个运行例外]. 【】13:下面异常执行的结果是:try{intx=0;floaty=0;floatz=x/y;System.out.println(11);try{inta[]=newint[3];a[3]=x;System.out.println(22);return;}catch(Exceptione){System.out.println(33);return;}finally{System.out.println(44);System.exit(0);return;}}catch(ArithmeticExceptione){System.out.println(55);return;}finally{System.out.println(66);return;}A:B:C:D:115511115566333366444466【】14:阅读下面程序段:bytea[]={'a',65,'#','B'};byteb[]=newbyte[a.length];System.arraycopy(a,1,b,1,2);BufferedOutputStreambos;bos=newBufferedOutputStream(newFileOutputStream(C:\\file.txt));bos.write(b,1,2);bos.flush();bos.close();假设file.txt原先不存在,运行该程序段后,文件file.txt的内容为()。A.65B.65#C.A#D.A【】15:假设以数组A[n]存放循环队列的元素,其头、尾指针分别为head和end。若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为A:(end-head-1)%nB:(end-head)%n C:(head-end+1)%nD:(end-head+n)%n【】16:对线性链表和线性表分析错误的是()A:线性链表分为单链表、双向链表和循环链表B:线性链表是一种物理存储单元上连续但非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的C:线性表插入或删除的运算效率很低。在顺序存储的线性表中,插入或删除数据元素时需要移动大量的数据元素D:线性表的顺序存储结构不便于对存储空间的动态分配【】17:以下属于java.util包中集合类具体实现类的是?A:MapB:CollectionC:TreeMapD:SortedMap【】18:下面对集合不能正确创建实例化是()A:ListHashMapNumber,Stringlist=newLinkedListHashMapNumber,String();B:ArrayListHashSetStringlist=newArrayListHashSetString();C:TreeSetHashtableString,Integertree=newTreeSetHashtableString,Integer();D:TreeSetArrayListString,Integertree=newTreeSetArrayListString,Integer();【】19:下面可以删除list中所有的“java”的代码是:ArrayListlist=newArrayList();list.add(“java”);list.add(“aaa”);list.add(“java”);list.add(“java”);list.add(“bbb”);A:for(inti=list.size()-1;i=0;i--){if(java.equals(list.get(i))){list.remove(i);}}B:for(inti=0;ilist.size();i++){if(java.equals(list.get(i))){list.remove(i);}}C:Iteratori=list.iterator();while(i.hasNext()){if((i.next().toString()).equals(java)){i.removeAll();}}D:Iteratori=list.listIterator();while(i.hasNext()){if(((String)i.next()).equals(Java))i.remove();}}【】20:题示代码的功能为:将两个有序的ArrayList合并为一个有序的ArrayList。对于两个存放Integer对象的ArrayList,内容分别为:list1:{1,3,4,6,8}和list2:{2,5,9}合并后的list3:{1,2,3,4,5,6,8,9}……ListIntegerlist3=newArrayListInteger();intsize=list1.size()+list2.size();for(inti=0,j=0,k=0;ksize;k++){填入的代码}System.out.println(list3);……完成该功能应该填入的代码是()。A.if(j=list2.size()||ilist1.size():&&list1.get(i)list2.get(j)){list3.add(list1.get(i++));}else{list3.add(list2.get(j++));}B.if(j=list2.size()||ilist1.size()&&list1.get(i)list2.get(j)){list3.add(list1.get(i++));}else{list3.add(list2.get(j++));}C.if(j=list2.size()||ilist1.size()&&list1.get(i)list2.get(j)){list3.add(list1.get(i++));}else{list3.add(list2.get(j++));}D.if(j=list2.size()||ilist1.size()||list1.ge