CoreJava试题总分:100姓名:__钟奎________评分:__________1选择题(每题2分,共60分)1.以下程序段执行的结果是:【C】intsum=0;for(inti=0;i10;++i){if(i==5)break;if(i3)continue;sum+=i;}System.out.println(i+sum);A.11B.16C.编译错误D.抛出运行期异常2.下列哪些数据类型不能用于switch语句中(多选):【C,F】A.charB.longC.byteD.doubleE.shortF.float3.下列关于构造函数的描述哪些是错误的(多选):【AB】A.每个类都会有一个无参数的默认构造函数B.抽象类没有构造函数C.接口没有构造函数D.实例化一个对象时,只可能执行一个构造函数E.执行子类的构造函数中的任何代码前,必定先显式或隐式调用父类的构造函数4.请选择下列代码的正确输出结果:【】两个类:classA{staticinti=100;voidfunc(){System.out.println(“inA.func(),andi=”+i);}}classBextendsA{staticinti=200;voidfunc(){System.out.println(“inB.func(),andi=”+i);}}执行代码:Aa=newB();a.func();输出结果为:A.inA.func(),andi=100B.inA.func(),andi=200C.inB.func(),andi=100D.inB.func(),andi=2005.a包下有类X,b包下有类Y继承于X,代码如下,请选择正确的断言:【E】//文件Apacakgea;classX{protectedinti=100;}//文件Bpacakgeb;importa.X;publicclassYextendsX{protectedinti=200;publicstaticvoidmain(String[]args){Yy=newY();System.out.println(y.i);}}选择答案:A.编译错误:对于b包,A不可见B.编译错误:对于Y类,成员i不可见C.编译错误:Y类重复定义了成员iD.输出:100E.输出:2006.有以下接口定义,请选择正确的断言(不定选):【A】interfaceMyIntf{inti=100;voidfunc();}选择答案:A.正确B.编译错误:接口不能定义实例属性iC.编译错误:接口不能定义实例方法func()D.编译错误:属性i和方法func()必须声明为publicE.编译错误:接口自身必须定义为public7.关于内部类的断言,哪些是正确的(多选):【BCE】A.所有内部类都不能定义static成员B.内部类可以定义为接口C.内部类可以定义为抽象类D.所有内部类都能访问外部类的所有成员E.对于所有内部类,生成内部类的实例前必须已生成外部类的实例F.匿名内部类只能实现接口,不能从其他类派生。所以,匿名内部类的父类都是Object8.以下关于Object类的断言,哪些是正确的(多选):【CD】A.不能直接生成Object类的实例B.Object类中,equals()比较方法和“==”运算符的效果是一样的C.Java规定:对象值不等(equals()比较结果为false),它们的HashCode也不能相同D.某个类支持Clone并且有一个属性“Stringstr”,当从一个实例Clone出一个新实例时,新实例的str属性所指向的对象与原实例的str属性所指向的对象不同E.要实现Clone功能,必须把clone()方法的设置为public,并实现Cloneable接口F.因为每个类都有toString()方法,所以,可以用任何类的实例作为参数调用那些接受字符串参数的方法9.关于GC,下列哪些说法是正确的(多选):【】A.手工调用对象的finalize()方法后,对象的内存马上就会被GC回收B.手工调用System.gc()方法后,垃圾回收机就会马上启动C.手工调用Runtime.getRuntime.gc()方法后,垃圾回收机就会马上启动D.即使存在可回收的内存,垃圾回收机也不一定会启动E.程序运行终结后,所有的内存资源都会被回收F.Java的GC机制只能回收内存资源10.下列关于异常的断言,哪些是正确的(多选):【】A.由于Java的异常机制是强制性的,所以,所有可能抛出异常都必须捕捉B.对于方法内部不能处理的可检视异常必须加入方法的异常声明列表中C.如果某个异常没有被方法栈中的任何方法捕捉,则会导致程序的终结D.运行期异常(RuntimeException)是不能被捕捉的E.运行期异常(RuntimeException)是系统定义的,我们不能定义运行期异常类F.在异常处理代码段中,即使try语句块内部用了return语句退出方法,finally语句块还是会执行11.执行下列代码,输出结果是:【E】publicclassTest{publicstaticvoidmain(String[]args){func(100);}publicstaticvoidfunc(shortv){System.out.println(invokeshort);}publicstaticvoidfunc(longv){System.out.println(invokelong);}publicstaticvoidfunc(Integerv){System.out.println(invokeInteger);}publicstaticvoidfunc(int...v){System.out.println(invokeint...);}publicstaticvoidfunc(Objectv){System.out.println(invokeObject);}}选择结果:A.编译错误B.invokeshortC.invokelongD.invokeIntegerE.invokeint...F.invokeObject12.下列关于字符串操作类的断言,哪些是正确的(多选):【CF】A.以下代码会导致str指向的String对象的值由“ABC”改为“XYZ”Stringstr=“ABC”;str=“XYZ”;B.执行字符串相加操作时,String类的“+”运算效率最低C.执行字符串相加操作时,StringBuilder类的运算效率最高D.StringBuffer是线程安全的,而StringBuilder不是线程安全的E.StringBuilder是JDK1.5新加入的类,用于取代StringBufferF.StringBuilder的append()方法的返回值是字符串相加后的结果字符串G.String类是不可继承的13.下列关于集合类的断言,哪些是正确的(多选):【D】A.ArrayList的效率比LinkedList高,所以通常用ArrayList作为List的默认实现B.List、Set和Map都继承与Collection接口C.JDK1.5开始,集合类已支持基础数据类型的元素,如:Listlist=newArrayList();list.add(1);list.add(3.14);D.虽然Set接口不保证元素的顺序,但某些Set实现类还是能对元素作相应排序E.由于Set不能加入重复元素,所以加入Set的元素必须实现Comparable接口F.以下代码中,最后的结果,key对应的值为value2:Mapmap=newHashMap();map.put(key,value1);map.put(key,value2);G.Java提供的帮助类Collections,它的sort方法能对List、Set和Map进行排序14.下列关于对象序列化的断言,哪些是正确的(多选):【】A.对象序列化是Object类提供的一种特性,任何对象都能被序列化B.用transient修饰的属性将不会被序列化C.对象序列化的工作是把对象的方法和属性以字节流的方式传送到相应介质D.由于序列化是以字节流的方式传送保存的,所以我们用OutputStream/InputStream接口进行序列化和反序列化操作E.对象序列化可以跨越不同VM和操作系统平台F.一个类如果包含了基础数据类型的属性(如:int、float)则不能被序列化G.String类的实例是可以被序列的15.下列关于多线程的断言,哪些是正确的(多选):【F】A.在多线程环境下数据是共享的,代码是不共享的,所以只需同步对数据的访问B.如果主线程(入口线程)执行完成则程序也会结束C.除非高优先级线程被阻塞,否则低优先级线程必须等高优先级线程结束才执行D.如果线程被sleep()或wait()阻塞,可以可以调用interrupt()方法中断阻塞E.除主线程外,所有其他线程的入口方法都是:publicvoidstart()F.无论实例方法还是类方法(静态方法),如果方法声明中加入synchronized修饰符表明:调用方法前必须取得该类实例的锁G.wait()、notify()、notifyAll()和sleep()方法继承自Object类16.下列代码可能会有错,如果有错请指出错误的地方(多选):【CE】importjava.util.*;publicclassTest{publicstaticvoidmain(String[]args){ListIntegerlist=newArrayListInteger();list.add(1);//A.类型不匹配list.add(newInteger(2));//B.语法不被支持list.add(3.14);//C.类型不匹配list.add(newDouble(3.14).intValue());//D.语法不被支持printList(list);//E.类型不匹配}//F.没有错误publicstaticvoidprintList(ListNumberlist){for(Numbern:list).System.out.println(n);}}17.Java程序有哪几种(多选):【BC】A.类(class)B.AppletC.ApplicationD.Swing18.下列断言哪些是正确的(多选):【B】A.javac在编译程序时,用-source选项指定查找输入源文件的位置B.javac在编译程序时,用-target选项指定存放生成类文件的位置C.javac一次可同时编译数个Java源文件D.java.exe执行程序时能用-D选项定义系统属性(systemproperties)19.下列断言哪个是正确的:【D】A.Java程序经编译后会产生bytecodeB.Java程序经编译后会产生machinecodeC.Java程序经编译后会产生DLLD.以上都不正确20.下列断言哪个是正确的:【C】A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行D.一个class只能定义一个constructor21.下列哪些哪标识符号是不合法的(多选):【AC】A.newB.$UsdollarsC.1234D._underLine22.下列断言哪些是错误的(多选):【AD】A.数组属于对象类型B.所有数组都继承与java.util.ArrayC.可以这样定义数组:int[]numbers=newint[6]{31,23,33,43,35,63};D.数组对象被创建后,其大小可以任意改变23.下列哪些修饰符不能修饰interface的成员(多选):【CD】A.privateB.protectedC.staticD.finalE.abstract24.下列断言哪些是正确的(多选):【】A.callbyvalue不能改变实际