本文共 17488 字,大约阅读时间需要 58 分钟。
共50道题,每道题2分,总分100分,80分为合格。
注意,题目有多选,也有单选。请认真作答。=============================================================================传智播客Java就业班入学测试题及答案解析(2012年版) 共50道题,每道题2分,总分100分,80分为合格。 注意,题目有多选,也有单选。请认真作答。 对应试者的忠告: 传智播客从办学一来,一直在IT培训领域保持着良好的口碑,之所以能做到这么好的口碑,主要得益于过硬的教学质量以及学员的高就业率。 本测试题的目的在于帮助学员检测自己的java基础,因为公司要保证教学质量,光有名师授课是远远不够的,还需要学员们都具备一个基本的java基础. 试想一下,如果学员入学前我们不进行测试,那么必然会导致学生的技术水平参差不齐,再好的老师也无法把这样的班教好。 希望参加测试的学员能本着对自己负责的态度,独立完成这套测试题。 如果您试图通过找人帮忙做题等其他途径来完成这套测试题,我们劝您千万别这样做,因为这样是害了自己。 即使通过测试,顺利进入就业班的学习,同样是跟不上老师的进度,不会有一个好的结果。 如果您觉得完成这套测试题非常有难度,那也没有关系,因为我们针对基础不好的学员专门开设了java基础与加强班,您可以通过短时间的培训,打下一个坚实的基础,再继续参加我们就业班的培训。【Java面试复习经典】-----------------------------------------------------------------------------1. 在JAVA中,下列哪些说法是正确的(AC) A.java源文件的扩展名为.java B.写好的java源程序可以直接运行 C.编写的源程序必须先编译后才能运行 D.程序员可以读懂扩展名为.class的文件 答案:AC java程序需要经历如下几个步骤才能够被运行: 1.建立java源文件,为了让编译器识别是java文件所有扩展名为.java。 2.编写java代码,你在里面写文言文我也不反对,但是严格意义上来讲,不单单名称要符合java源文件规范,里面代码也应该是符合java语法的。 3.编译器编译源文件:编译器javac通过编译.java文件产生可被java执行的.class文件。 4.java执行.class文件-----------------------------------------------------------------------------2. 在java中,关于数组描述正确的是(BD) A.数组中的索引下标从1开始 // 从0开始,计算机地址是从0开始 B.存储在数组当中的数据都属于同一数据类型 // 考察数组概念 C.通过数组名.length()能获得数组的长度 // 数组名.length length是数组的一个属性 D.数组的最大索引下标是数组的长度减1 // 例如:数组中有3个元素,角标为:0、1、2,长度为3,最大角标2=3-1。-----------------------------------------------------------------------------3. 下列标识符哪个是合法的(BD) A.class 关键字 B.$abc 可以 C.1234 不能以数字开头 D._name 请思考:main是关键字吗?说明理由。 答:main不是关键字,main是一个通用的名称,虽然不是关键字,但是被jvm识别。-----------------------------------------------------------------------------4. 下面程序的输出结果是什么(D) int[] arr = new int[10]; System.out.println(arr[0]); A.编译不通过 B.运行时出错 C.输出null D.输出0 数组顾名思义是数据排成组,它就是用来存储数据的。 当我们定义好它时,它就已经被明确装的是何种类型的数据, 而当我们没有初始化里面元素的时候,java会默认会按照你指定元素的类型来在角标上初始化相应的默认值。 想一想String类型的数组如果没有初始化,那它的结果是什么呢? 答:是null。因为String是一个类类型,是引用数据类型。-----------------------------------------------------------------------------5. 下面哪些赋值语句是正确的?(ABD) A. long test = 012; // 可以,八进制表示 B. float f = -412; // 可以 C. int other = (int) true; // 布尔类型不能转换为数值类型 D. double d = 0x12345678; // 可以,十六进制表示,在double范围内 E. byte b = 128; // 超出byte范围 -128~127 这道题考察数据类型声明及转换。 请思考: byte b = 4; // 默认将b强转为int类型 b = 3 + 7; System.out.println(b); // 结果如何呢?为什么? 结果为10 byte b = 4; byte b1 = 3; // 默认将b1强转为int类型 byte b2 = 7; // 默认将b2强转为int类型 b = b1 + b2; // 类型不匹配:无法从int转换为字节 System.out.println(b); // 结果如何呢?为什么? 编译报错:类型不匹配:无法从int转换为字节-----------------------------------------------------------------------------6. 下面哪个语句正确地声明一个整型的二维数组(CD) A. int a[][] = new int[][]; B. int b[10][10] = new int[][]; C. int c[][] = new int[10][10]; D. int []d[] = new int[10][10]; 数组定义格式问题: int arr[][]=new arr[2][3] or int arr[][]=new arr[2][]; 左边部分[]在arr两侧均可。-----------------------------------------------------------------------------7. 下面哪些函数是public void aMethod() {...}的重载函数?(BD) A. void aMethod( ) {...} B. public int aMethod(int a, float b) {...} C. public void aMethod () {...} D. public float aMethod (int m) {...} 重载是同一个类中相同方法名,不同的参数列表,好比一个人可以用不同种餐具;重载同返回值无关。-----------------------------------------------------------------------------8. 下列代码运行的结果是(C) public static void main(String[] args) { int x = 4; int y = 5; if(x++ > 4 & ++y > 5) { x++; } System.out.println("x="+ x + ",y=" + y); } A. x=4,y=5 B. x=4,y=6 C. x=5,y=6 D. x=6,y=6-----------------------------------------------------------------------------9. 尝试运行下面的代码会发生什么?(B) public class Test { public static void main(String args[]) { boolean m = true; if (m = false) { System.out.println("true"); } else { System.out.println("false"); } } } A. 输出字符串”true” B. 输出字符串”false” C. 编译时错误 D. 运行时错误 我们要明白if(){}语句中条件句中到底装的是什么,它里面判断的无非就是真假,true或者false, 这里m作为一个boolean变量,在if中将它重新赋值为false,所以相当于if(false),故执行else中的代码。-----------------------------------------------------------------------------10. 在Java中,下列语句不能通过编译的有(BD) A. String s = “join” + 3; // +前后有字符串 会将其作为字符串参与连接 B. int a = “join” + 3; // 字符串无法转换为int类型 C. int a = ‘a’ + 5; // 可以的,在int范围之内 D. float f = 5 + 5.5; // 小数java默认为double类型,无法从大变小,对于数据类型,一句话:可以鸡犬升天,不能委曲求全。 -----------------------------------------------------------------------------11. 设 a = 3,则表达式 (--a )< -----------------------------------------------------------------------------16. 在Java中,用来跳出循环的关键字为(C) A. return B. continue C. break D. exit-----------------------------------------------------------------------------17. 下列关于tcp协议的描述正确的有(BD) A. tcp协议是sun公司制定的协议 B. tcp是基于ip协议的一种连接协议 C. tcp协议面向无连接 D. tcp协议面向连接必须稳定-----------------------------------------------------------------------------18. 在web页面中,经常需要使用javascript进行表单验证,现假设对用户名的限定为字母数字或下划线,以下的正则表达式哪些可以完成这样的限定?(BC) A. [a-z0-9_] B. \w C. [a-zA-Z0-9_] D. \W -----------------------------------------------------------------------------19. 下列关于接口的说法正确的是(AD) A. 接口中所有的方法都是默认抽象的 B. 接口是一种特殊的java类,所以也可以定义构造函数 C. 接口中的方法前面必须要加上public // 没什么意义,可以不加上,编译器默认自动加上 D. 一个类只能extends继承一个父类,但是可以实现多个接口-----------------------------------------------------------------------------20. 运行以下代码片段,输出结果是?(D) class X { Y b = new Y(); // 2运行到这里,执行y的构造函数输出Y X() { System.out.print("X"); // 3 输出X } } class Y { Y() { System.out.print("Y"); } } public class Z extends X { Y y = new Y(); // 4 输出Y Z() { System.out.print("Z"); // 5 输出 Z } public static void main(String[] args) { new Z(); // 1 Z的实例对象 } } A. Z B. YZ C. XYZ D. YXYZ 对继承的中构造函数的考察,会先实现父类,再实现子类。-----------------------------------------------------------------------------21. 下面程序的输出结果是什么?(D) Set set= new HashSet(); set.add("aaa"); set.add("bbb"); set.add("aaa"); System.out.println(set.size()); A. 编译不通过 B. 运行时出错 C. 输出3 D. 输出2 一看到set想到set的特点是元素不可重复、无序。 选D,编译时会有警告提示,使用泛型指定类型即可。-----------------------------------------------------------------------------22. 下列选项中关于Java中super关键字的说法正确的是(AD) A. super关键字是在子类对象内部指代其父类对象的引用。 // 例如:super.getClass() B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类。 C. 子类通过super关键字只能调用父类的方法,而不能调用父类的属性。 D. 在子类的构造函数中可以通过super关键字调用父类的构造函数。-----------------------------------------------------------------------------23. 下列关于类的继承的描述,正确的有(BD) A. 一个类可以同时继承多个父类 // java中不支持此种方式实现多继承 B. 一个类可以具有多个子类 C. 子类会自动拥有父类所有的方法 // 自动拥有父类所有的非私有方法 D. 一个类继承另一个类需要使用extends关键字-----------------------------------------------------------------------------24. 下列代码运行的结果是(D) public static void main(String[] args) { int num = 4; int y = 0; switch (num) { case 1: y++; case 2: y += 2; case 3: y += 3; case 4: y += 4; case 5: y += 5; } System.out.println(y); } A. 0 B. 4 C. 5 D. 9 没有break来跳出,造成case穿透。-----------------------------------------------------------------------------25. 下列选项中关于java中this关键字的说法错误的有(BD) A. this关键字是一个对象的引用 // this可以代表当前类 B. this关键字可以用于引用当前类以外其他类型的对象 // this只代表本类对象 C. this可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行 D. this可用于静态方法中 // this是对象的引用,静态方法没有对象,没有爹啊 所以不能在静态方法中引用this(静态方法不能与this同时使用)-----------------------------------------------------------------------------26. 下列关于java中抽象类的说法正确的有(AD) A. 含有抽象方法的类必须声明为抽象类 B. 抽象类中不可以有非抽象方法 C. 抽象类中至少需要包含一个抽象方法 D. 抽象类无法实例化 // 在抽象类中实例化有屁用-----------------------------------------------------------------------------27. 下列关于构造函数的说法正确的是(ABD) A. 方法名必须与类名相同 B. 使用new关键字创建对象时,java虚拟机会自动调用构造函数 //调用默认空参的构造函数,如果类中定义了带参的,那么需要在new的时候提供参数 C. 我们在定义一个类时,必须要声明至少一个构造函数 D. 构造函数中不能使用return语句 构造函数返回值是对象,但是java规定不可以显式返回该对象-----------------------------------------------------------------------------28. 下面有关Java异常处理的说法错误的是(A) A. 一个try块只能有一条catch语句 B. 一个try块中可以不使用catch语句 // 可以不处理,直接抛异常 C. catch块不能单独使用,必须始终与try块在一起 try 和 catch是好基友 D. finally块不能单独使用,必须始终与try块在一起 -----------------------------------------------------------------------------29. 下列关键字能和try语句一起使用的是(CD) A. final B. finalize C. finally D. catch-----------------------------------------------------------------------------30. 编译并运行以下代码的输出结果是?(C) String s1 = new String("amit"); // 字符串常量池 System.out.println(s1.replace('m','r')); // replace方法返回一个字符串,这个字符串当然是新的了,不会影响原来的s1 System.out.println(s1); String s3 = "arit"; String s4 = "arit"; String s2 = s1.replace('m','r'); System.out.println(s2 == s3); System.out.println(s3 == s4); A. arit amit false true B. arit arit false true C. amit amit false true D. arit amit true true-----------------------------------------------------------------------------31. 当select下拉列表的选项发生改变时会触发下面的那个事件?(C) A. onclick事件 B. onsubmit事件 C. onchange事件 D. onload事件-----------------------------------------------------------------------------32. 编译并运行以下代码将发生什么?(D) class MyClass { int x; MyClass(int i) { x = i; } public static void main(String args[]) { MyClass m1 = new MyClass(100); MyClass m2 = new MyClass(100); if(m1.equals(m2)) { // 继承Object类,比较的是对象的地址值 System.out.println("Bothare equal"); }else { System.out.println("Bothare not equal"); } } } A. 代码编译时报出错误提示信息“equals() 方法未定义” B. 编译通过,抛出运行期异常. C. 输出Both are equal. D. 输出Both are not equal 查看object类的equals方法,就一目了然了。-----------------------------------------------------------------------------33. 阅读下面的html页面,选出能获取table元素的语句(BD)
我的GitHub地址: 我的博客园地址: 我的蚂蚁笔记博客地址: Copyright ©2018 黑泽明军 【转载文章务必保留出处和署名,谢谢!】