黑马Java测试题错题归纳

这篇博客汇总了黑马Java测试题目中的易错点,包括赋值语句的正确性、程序输出结果、二维数组声明、类继承、this关键字的使用、构造函数的特性、字符串操作、文件I/O以及递归算法等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

黑马Java测试题错题归纳


  1. 下面哪些赋值语句是正确的( )
A. long test = 012;
B. float f = -412;
C. int other = (int) true;
D. double d = 0x12345678;
E. byte b = 128;
  1. 尝试运行下面的代码会发生什么?( )
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)
  1. 下面程序的运行结果是( )
 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
黑马程序员训练营入学考试题 1、方法中的内部类能不能访问方法中的局部变量,为什么? 2、编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。 3、取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)... 4、有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。 5、编写一个程序,获取10个1至20的随机数,要求随机数不能重复。 6、编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。 7、写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 ? 8、编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。 9、28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路) 10、有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
1、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如: 键盘输入6,打印6秒; 键盘输入60,打印1分; 键盘输入66,打印1分6秒; 键盘输入666,打印11分6秒; 键盘输入3601,打印1小时1秒 2、 编程计算3乘8等于几,什么方法效率更高? 3、 以下代码哪个是正确的?为什么? a. byte b = 1 + 1; b. byte b = 1; b = b + 1; c. byte b = 1; b = b += 1; d. byte b = 1; b = ++b; 求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55 5、 写出以下代码执行结果,分析为什么?(没有分析结果不得分) public class Test { public static void main(String[] args) { String s = "abc"; s.substring(1); s.replace("bc", "xyz"); System.out.println(s); String value = new String ("abc"); System.out.println(s == value); } } 6、 用控制台程序倒着输出九九乘法表;输出结果按下图所示: 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 …… 1*3=3 2*3=6 3*3=9 1*2=2 2*2=4 1*1=1 7、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly? 8、 声明类Person,包含2个成员变量:name、age。定义函数sayHello(),调用时输出:我叫***,今年***岁了。声明类Chinese继承Person。 9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt 10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值