黑马Java测试题错题归纳
- 下面哪些赋值语句是正确的( )
A. long test = 012;
B. float f = -412;
C. int other = (int) true;
D. double d = 0x12345678;
E. byte b = 128;
- 尝试运行下面的代码会发生什么?( )
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. 运行时错误
3. 下面程序的输出结果是什么( )
int[] arr = new int[10];
System.out.println(arr[0]);
A. 编译时错误
B. 运行时错误
C. 输出null
D. 输出0
4. 下面哪个语句可以正确的声明一个整型的二维数组()
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];
5. 下列关于类的继承的描述,正确的有()
A. 一个类可以同时继承多个父类
B. 一个类可以具有多个子类
C. 子类会自动拥有父类的所有方法
D. 一个类继承另一个类需要使用extends关键字
6. 下列选项中关于this关键字的错误说法有()
A. this关键字是一个对象的引用
B. this关键字可以用于引用当前类以外其他类型的对象
C. this关键字用于构造函数中,调用类本身重载的构造方法,但是必须写在首行
D. this可用于静态方法中
7. 下列关于构造函数的说法,正确的是()
A. 方法名必须与类名相同
B. 使用new关键字创建对象时,java虚拟机会自动调用构造方法
C. 我们在定义一个类时,必须要声明至少一个构造方法
D. 构造函数中不能使用return语句
8. 运行下面的main()方法,结果是( )
public static void main(String[] args) {
String myString;
int x = 100;
if(x < 100) myString = "x is less than 100";
if(x > 100) myString = "x is greater than 100";
System.out.println(myString.length());
}
A. 编译时报出错误提示信息”变量myString没有被初始化”
B. 编译通过
C. 编译未能通过。但如果变量myString在第8行前的代码中被初始化,代码可以编译通过,运行时可以输出字符串myString的长度
D. 以上都不对
9. 有如下代码,请问哪些是正确的()
class ClassA() {}
class ClassB extends ClassA{}
class ClassC extends ClassA{}
ClassA p0 = new ClassA();
ClassB p1 = new ClassB();
ClassC p2 = new ClassC();
ClassA p3 = new ClassB();
ClassA p4 = new ClassC();
A. p0 = p1;
B. p1 = p2;
C. p1 = (ClassB)p3;
D. p2 = (ClassC)p4;
10. 编译并运行以下代码的输出结果是?( )
String s1 = new String("amit");
System.out.println(s1.replace('m','r'));
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
11. 下列哪些代码可以顺利通过编译和运行? ( )
A.Integer i = new Integer('A');
B.Integer i = new Integer("7");
C.Character c = new Character("A");
D.Boolean b = new Boolean(null);
E.Integer i = new Integer("0x10");
12. 在Java中,如果要在字符串类型对象s=”java”中,得到字符 ‘v’ 出现的位置,可使用下面的那个方法?( )
A. s.matches('v');
B. s.charAt('v');
C. s.indexOf('v');
D. s.substring('v');
13. 下面程序的输出结果是什么( )
Set set= new HashSet();
set.add("aaa");
set.add("bbb");
set.add("aaa");
System.out.println(set.size());
A. 编译不通过
B. 运行时出错
C. 输出3
D. 输出2
14. 下列哪些方法是ArrayList和LinkedList集合中都定义的( )
A. add(Object o)
B. removeFirst()
C. remove(Object o)
D. add(int index,Object o)
- 下面程序的运行结果是( )
FileOutputStream fos = new FileOutputStream(“c:\\demo.txt”);
fos.write(“abc”);
fos.close();
A.在C盘创建文件demo.txt,但文件是空的
B.在C盘创建文件demo.txt,并写入数据abc
C.将C盘已有的文件demo.txt中追加写入abc
D.编译失败
16. 下列关于Java中文件输入输出的说法正确的是( )
A. 在Java中,文件的输入输出功能是通过流来实现的
B. 如果要把数据写入到一个文件中,需要创建一个输入流对象
C. 字符流在某些方面比如汉字的处理,比字节流更方便
D. 可以通过Reader r = new Reader(“c:\pet.txt”)创建一个输入流对象
17. 关于方法的递归算法,说法正确的是( )
A.递归就是方法自己调用自己
B.递归的次数不能过大,否则会导致栈内存溢出
C.使用递归算法,方法必须有返回值
D.构造方法不可以使用递归算法
18. 49.正则表达式中可以表示所有的单词字符信息的是下面哪个规则:( )
A. \W
B. \w
C. [a-zA-Z]
D.[a-zA-Z_0-9]
答案
1. A、B、D
2. B
3. D
4. C、D
5. B、D
6. B、D
7. A、B
8. A、C
9. A、C、D
10. A
11. A、B、D
12. C
13. D
14. A、C、D
15. D
16. A、C
17. A、B、D
18. B、D