CoreJava测试题答案
- 格式:doc
- 大小:105.50 KB
- 文档页数:7
《CoreJava》理论试题题库答案版得分阅卷人一、单选题(20题,共38分)1、(2分)基本数据类型float的包装类是哪项,(C) A( Integer B( DoubleC( Float D( Character 2、(2分)使用下列哪个修饰符定义的类不能被继承( C ) A. static B. abstract C. final D. Native3、(1分)下列类的定义,错误的是( D ) A. public class test extends Object{……} 学院班级姓名 B. final class operators{……}密封线内不要答题 C. class Point{……}D. void class Point{……}4、(2分)静态内部类是指使用(B)来修饰的内部类 A(final B.staticC.publicD.protected5、(2分)匿名内部类的特点下面错误的是(b) A、匿名内部类没有构造方法B、匿名内部类是静态的C、它主要用于继承其他类或实现接口D、它是一个特殊的局部内部类6、(2分)下列哪个类不是java基本数据类型的封装类,( C )A. Integer;B. Byte;C. String;D. Character;7、(1分)基本数据类型char的包装类是哪项,( D )A intB charC StringD Character8、(2分)阅读以下程序代码,作出分析:public class Test { public static void main(String[]args) { boolean b = true; b=new Apple().equals(new Apple()); System.out.println(b); }}class1 / 49Apple{}该程序的输出结果是:(A)A(falseB(trueC. 不确定结果D. 编译错误9、(2分)List接口的特点是哪项,(C)A(不允许重复元素,元素无顺序B(不允许重复元素,元素无顺序c(允许重复元素,元素有顺序D(允许重复元素,元素无顺序10、(2分)关于HashMap和HashTable的说法错误的是( D ): A. HashMap和HashTable都是Map接口的实现类B. HashTable是线性安全的C. HashMap是线性不安全的D(HashTable要比HashMap的性能高一点11、(2分)当程序调用一个null对象的方法或属性时,这将引起(A )异常A NullPointerExceptionB NumberFormatExceptionC IndexOutOfBoundExceptionD 以上都可能12、(2分)局部内部类是定义在(B)A.外部类里面 B、外部类的某个方法里面 C、通过实现接口来实现 D、都可以13、(1分)创建一个数据库对象的关键字是( D )A、alterB、newC、addD、create 14、(2分):在数据库中,下列表示整型数据类型的是(B)。
Core Java试题汇总1.谈谈final, finally, finalize的区别。
答:final为Java语言中的关键字,有“这是无法改变的”或者“终态的”的含义;finally也为Java语言中的关键字,是异常处理机制中的一部分,在finally块中的代码在异常处理的最后阶段总会执行;finalize为Java语言中的一个函数,它在系统中主要用于垃圾收集。
2.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?答:匿名内部类不能继承其它类,但是一个匿名内部类可以作为一个接口由另一个匿名内部类实现。
3.&和&&的区别。
答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与运算。
如果两个boolean 条件分别用&和&&相连接,如果第一个boolean条件结果为false,那么用&连接时,第二个boolean条件依然会被执行(在条件为表达式的情况下);而用&&连接时则不会被执行。
4.HashMap和Hashtable的区别。
答:区别主要有三点。
1,Hashtable是基于Dictionary类的,HashMap是Map接口的一个实现。
2,Hashtable的方法是线程安全的,而HashMap的方法不是。
3,HashMap的key或者value可以为空,而Hashtable不能。
5.Collection和Collections的区别。
答:Collection是集合类的上一级接口,继承于它的接口主要有Set和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
6.GC是什么? 为什么要有GC?答:GC是Garbage collection的缩写,意为垃圾回收,Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。
Corejava试题Corejava试题姓名__________ 班级___________一、选择题(本题为多选题,全部正确才给分,每题2分,总分46分)1、编译java程序的命令是________;运行java程序的命令是________;产生java文挡的命令是_______;查询java类型是否是serializable类型的命令是_______;产生java安全策略文件的命令是________;产生类型归档文件.jar的命令是________。
A. javaB. javacC. serialverD.javadocE.policytoolF.jar2、在使用super 和this关键字时,以下描述正确的是()A 在子类构造方法中使用super()显示调用父类的构造方法,super ()必须写在子类构造方法的第一行,否则编译不通过B super()和this()不一定要放在构造方法内第一行C this()和super()可以同时出现在一个构造函数中D this()和super()可以在static环境中使用,包括static方法和static语句块3、下面叙述正确的有___________________。
A.在一个java原文件中只能定义一个classB在一个java原文件中只能定义一个interfaceC在一个java原文件中可以定义多个classD在一个java原文件中可以定义多个interfaceE在一个java原文件中可以定义多个class和interfaceF在一个java原文件中只能定义public classG java原文件的前缀一定是所包含类型的名字4、java程序中程序运行入口方法main的签名正确的有________。
A. public static void main(String args[])B. static public void main(String[] args)C. public void static main(String[] args)D. public void main(String args[])5、public class Test {void printValue(int m){do {System.out.println("The value is"+m);} while( --m > 10 );}public static void main(String args[]) {int i=10;Test t= new Test();t.printValue(i);}}输出将是什么? ()A. The value is 8B. The value is 9C. The value is 10D. The value is 116、以下能作为class, interface, method或variable有效标识符的有________________。
达内corejava第二次考试试题类型:单选题试题1已知变量a和obj的定义如下:Object[] a1 = { "a", "b", "c" };Object obj = a1;则下面语句运行时会抛出异常的是( )。
CA.Object[] a2 = (Object[])obj;B.String str1 = (String)((Object[])obj)[1]C.String[] a3 = (String[])objD.String str2 = (String)a1[2]试题2已知类Foo的定义如下:public class Foo {int value;Foo(int value) {this.value = value;}}运行下面程序段:Foo[] a1 = { new Foo(1), new Foo(2), new Foo(3) }; Foo[] a2 = new Foo[a1.length];System.arraycopy(a1, 0, a2, 0, a1.length);System.out.println((a1 == a2) + "," + (a1[1] == a2[1]));控制台输出的结果是( )。
AA.false,trueB.false,falseC.true,trueD.true,false试题3已知类Foo的定义如下:public class Foo {int value;Foo(int value) {this.value = value;}public boolean equals(Object obj) {if (obj instanceof Foo) {Foo foo = (Foo) obj;return value == foo.value;} else {return false;}}运行下面程序段:ArrayList list = new ArrayList();HashSet set = new HashSet();list.add(new Foo(1));set.add(new Foo(1));System.out.println(list.contains(new Foo(1)) + "," + set.contains(new Foo(1)));控制台输出的结果是( )。
选用的题目如下:01.数组有没有length()这个方法? String有没有length()这个方法?数组没有length方法数组提供的获得元素个数的方式是通过访问数组的length属性String也就是字符串类型有length()用于返回字符串的字符个数也就是俗话说的字数但是字符数和字节数是不同的int num = str.getBytes().length - str.length();可以得到一个字符串当中有多少个汉字02.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?为什么?Overload:方法重载指发生在同一类当中,方法名字相同,参数列表(类型、个数、顺序)不同的两个方法(体现静态多态)Override:方法覆盖发生在有继承关系的两个类之间子类类型当中访问控制权限修饰符不能更严格抛出的异常种类不能更广泛方法重载的时候可以改变返回值的类型return type maybe different因为方法名字和参数列表一旦确定在一个类当中就可以唯一确认一个方法所以即便方法返回类型不同也能判断出来调用的是哪个方法,因而不会出错03.== 与equals 有何区别?== 是Java当中的运算符用于比较两个引用当中存放的内存地址也就是内存指向是否相同或者说用于判断两个对象是否是同一个对象equals()是Java当中所有类型的父类既Object类当中的一个方法用于任何一个子类类型通过覆盖equals从而给这个类型提供另外一种比较规则(因为java当中没有运算符重载)很多人看到equals就认为是比较内容的方法其实不然在Object类当中equals方法当中也是采用==实现比较04.Error和Exception有什么区别?他们是Throwable的两个分支Error是指错误通常是程序员不可能通过代码来解决的问题底层环境或者硬件的问题Exception指异常或者理解为程序运行过程当中出现的意外情况05.abstract class和interface有什么区别?抽象类当中可以定义普通的属性可以定义普通的方法(有完整方法体的方法), 抽象类依然是Object的子类类型interface从某种意义上应当理解成为更为纯粹的抽象类当时其中只能定义抽象方法和常量接口当中定义的变量默认就是常量接口当中定义的方法默认就是抽象方法接口的概念没有父类换言之接口不是Object类型的子类类型06.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?接口可以继承接口而且可以多重继承在继承多个接口的同时子接口等价于两个接口的方法汇总抽象类可以实现接口因为抽象类当中可以有方法的具体实现抽象类可以继承实体类但是如果实体类继承抽象类就必须实现当中所有的抽象方法否则自身也得变为抽象类07.作用域public,private,protected,以及不写时的区别。
corejava_new 试题以下是未添加到数据库中的考题:以下是已添加到数据库中的考题:窗体顶端1. 下面哪些是short型的取值范围[C]A. -27 -- 27-1B. 0 – 216-1C. 215 – 215-1D. 231 – 231-12. 下面哪些是合法的标识符[ABE]A. $personsB. TwoUsersC. *pointD. thisE. _endline3. 哪些是将一个十六进制值赋值给一个long型变量[D]A. long number = 345L;B. long number = 0345;C. long number = 0345L;D. long number = 0x345L4. 下面的哪些程序片断可能导致错误。
[BD]A. String s = "Gone with the wind";String t = " good ";String k = s + t;B. String s = "Gone with the wind";String t;t = s[3] + "one";C. String s = "Gone with the wind";String standard = s.toUpperCase();D. String s = "home directory";String t = s - "directory";5. 在// point x处的哪些声明是合法的[DE]class Person {private int a;public int change(int m){ return m; }}public class Teacher extends Person {public int b;public static void main(String arg[]){Person p = new Person();Teacher t = new Teacher();int i;// point x}}A. i = m;B. i = b;C. i = p.a;D. i = p.change(30);E. i = t.b;6. 当Frame的大小被改变时, Frame中的按钮的位置也可能被改变,请问此时使用的是什么布局管理器[B]A. BorderLayoutB. FlowLayoutC. CardLayoutD. GridLayout7. 给出下面的代码片断1) public void create() {2} Vector myVect;3} myVect = new Vector();4} }下面的哪些陈述是正确的? [ADE]A. 第二行的声明不会为变量myVect分配内存空间。
CoreJava测试题(二)17. 一个匿名的内置类有可能________。
A.继承其他的类B.实现了某一接口C.定义了构造方法D.可以使用成员变量18. 如果你想将一组对象按一定顺序存取,在不考虑并发访问的情况下会使用________, 反之则会使用________;如果你想存储一组无序但唯一的对象,你会使用________; 如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用________, 反之则会使用________。
A.VectorB.HashSetC.ArrayListD.HashMapE.Hashtable 19. 程序代码:public class ExceptionTest{public double div(double a, double b){ try{return a/b; }catch(Exception e){System.out.println(“Excep tionthrown”); }finally{System.out.println(“Release resources.”);} }public static void main(String[]args){ ExceptionTest et = new ExceptionTest(); et.div(1, 2); et.div(3.4, 0); } }可能产生的结果是________:A. 编译不成功B.无法运行1C.程序运行输出为:Release resources.Exception thrown Release resources.20. ________又叫做unchecked exception。
Checked Exception通常继承________。
在方法签名上指定可能有异常产生用关键字________, 在程序中产生异常用关键字________。
获得异常的简单描述信息调用方法________, 获得详细的异常栈信息调用方法________。
CoreJava测试题班级:____ 姓名:____ 分数:____一、单选题1.J2SE作为一种应用和开发环境,提供了一整套实用工具,其中()是Java语言的编译工具。
(D)A.javaB.javadocC.javapD.javac2.Java中,以下循环语句的执行次数是(C)。
int x=37;int y=3;while(y<=x){y*=y;}A.0B. 1C. 2D. 33.下面Java程序的输出结果是(C)。
public static void main(String[] args){final int A=4;int a=2;switch(a*2){case A : System.out.print (a);default : System.out.println(a*2);}}A. 2B. 4C.24D.报错4.Java中,类Test定义如下:class Test{int m;public static void fun(){…}}如果希望fun()方法能够引用成员变量m,那么需要将第2行代码改为(C)。
A.p rotected int m;B.public int m;C.static int m;D.p rivate int m;5.任何一个Java程序都默认引入了一个包,这个包名是(A)。
ngB.java.objectD.java.io6.Java中默认的处理异常方法为(A)。
A.显示异常信息,停止程序运行B.显示异常信息,不停止程序运行C.不显示异常信息,但停止程序运行D.什么都不做7.Java中,欲构造ArrayList类的一个实例,此类继承了List接口,下列正确的方法是(B)。
A.ArrayList myList = new Object();B.List myList = new ArrayList();C.ArrayList myList = new List();D.List myList = new List();8.Java中,在任何方法返回前,绝对要执行的代码应放在(C)块中。
CoreJava考试题1、面向对象的特征有哪些方面? 【基础】答:面向对象的特征主要有以下几个方面:1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4)多态性:多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2、作用域public,private,protected,以及不写时的区别?【基础】答:区别如下:作用域当前类同包子孙类其他public √√√√第2 页共59 页protected √√√×default √√××private √×××不写时默认为default。
3、String 是最基本的数据类型吗? 【基础】答:不是。
4、float 型float f=3.4是否正确? 【基础】答:不正确;精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 。
5、语句float f=1.3;编译能否通过?【基础】答:不能;应该用强制类型转换,如下所示:float f=(float)1.3;。
选择填空题:选择题全部为多选题,只有全部正确才能得分。
1. 编译java程序的命令是B;运行java程序的命令是A;产生java文挡的命令是D;查询java类型是否是serializable类型的命令是C ;产生java安全策略文件的命令是E ;产生类型归档文件.jar的命令是F。
A. javaB. javacC. serialverD. javadocE. policytoolF. jar//压缩jar cvf test.jar test//解压jar xvf test.jar2. 在一个java原文件中,import, class, package语句的顺序是F。
A. import class packageB. class import packageC. package class importD. import package classE. class package importF. package import class3. 下面叙述正确的有CDE 。
A. 在一个java原文件中只能定义一个classB. 在一个java原文件中只能定义一个interfaceC. 在一个java原文件中可以定义多个classD. 在一个java原文件中可以定义多个interfaceE. 在一个java原文件中可以定义多个class和interfaceF. 在一个java原文件中只能定义public classG. java原文件的前缀一定是所包含类型的名字4. java程序中程序运行入口方法main的签名正确的有AB。
A. public static void main(String args[])B. static public void main(String[] args)C. public void static main(String[] args)D. public void main(String args[])5. java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从A开始。
A. 0B. 1C. -16. 以下属于正确的java注释有ACD。
A. //This is commentB. /*This is commentC. /**This is comment*/D. /*This is comment*/7. 以下能作为class, interface, method或variable有效标识符的有ADF。
A. ForB. boolean //关键字C. 23ageD. _idE. my name //有空格F. $this_is_a_long_variable_name8. 以下不是java关键字的有CD 。
//NULL不属于关键字,null是关键字A. superB. thisC. NULLD. true9. 以下能作为char类型的字面值的有BD。
A. "e"B. 'f'C. '\u12'D. '\u0012'10. byte变量的取值范围是B。
A. 0 - 65535B. -128 – 127C. -256 – 255D. 0 - 3276711. 以下正确的有AC。
A. int i = 32;B. float f = 45.32;C. double d=3.2;12. 以下返回true的表达式有AC。
//equals比较的是两个对象的内容;“==”比较的是两个对象的地址A. "george" == "george"B. "george" = "george"C. "george".equals(new String("george"))D. "george" == new String("george")13. 根据以下程序选择正确答案C:public class Test{static int total = 10;public static void main(String args []) {new Test();}public Test (){System.out.println("In test");System.out.println(this);int temp = this.total;if (temp > 5) {System.out.println(temp);}}}A. 编译出错B. 运行时有异常C. 编译运行都正确14. 下面集合定义正确的有BD。
A. String strs[] = { 'a' 'b' 'c'};B. String[] strs = {"a", "b", "c"};C. String[] strs = new String{"a" "b" "c"};D. String strs[] = new String[]{"a", "b", "c"};E. String[] strs = new String[3]{"a", "b", "c"};15. 分别使用for, while, do/while循环实现从1到100的累加。
1): forpublic class Test{public static void main(String[] arg){int result = 0;for(int i=0;i<=100;i++){result += i;}System.out.println("result==> "+result); }} 2): whilepublic class Test{public static void main(String[] arg){int result = 0;int i = 0;while(i<=100){result += i;i++;}System.out.println("result==> "+result); }}3): do-whilepublic class Test{public static void main(String[] arg){int result = 0;int i = 1;do{result += i;i++;}while(i<=100);System.out.println("result==> "+result);}}16. 以下switch表达语句正确的有AC。
//switch():括号内为表达式或四种简单类型(byte, short, int, char)A. public void switchTest (char c){switch(c){…}}B. public void switchTest(long c){swit ch(c){…}}C. public void switchTest(byte c){switch(c){…}}D. public void switchTest(double c){switch(c){…}}17. 在面向对象编程中,一个类型由CDF 组成。
面向对象的特性包括GIJ。
在java中访问权限的限制由严格到宽松依次是EHBA。
A. publicB. protectedC. identifierD. dataE. privateF. operationsG. inheritanceH. default(no modifier)I. encapsulationJ. polymorphism18. 以下方法声明正确的有AD。
A. public static synchronized void writeLog(String msg)B. synchronized public static writeLog(String msg) //没有返回类型C. public final abstract void writeLog(String msg) //final和abstract不能连用D. final public void writeLog(String msg)E. abstract synchronized void writeLog(String msg) //抽象方法只能被public或protected修饰19. Java方法的参数传递对于基本数据类型如int, byte等,参数传递是C;对自定义数据类型,参数传递是A。
A. by reference //引用B. by pointerC. by valueD. by address20. 如下程序:public class ArugmentTest {static class IntA {private int a;public IntA(int a) {this.a = a;}public int getA() {return a;}public void setA(int a) {this.a = a;}}static public void change(int a) {a = 3;}static public void change(IntA a) {a.setA(3);}static public void changeRef(IntA a) {a = new IntA(9);}public static void main(String[] args) {int a = 2;change(a);System.out.print(a);IntA ia = new IntA(5);change(ia); //ia的属性a的值设为3System.out.print(ia.getA());changeRef(ia); //对象类型传引用,还是原来的对象System.out.println(ia.getA());}}在控制台上输出的是A。
//数值传递规则:简单类型参数传递的是值;对象类型参数传递的是地址(引用)A. 233 B. 333 C. 259 D. 33921. 下面程序出错的有 8/10 行。