Java每日笔试题错题分析(5)
- 一、错题知识点前瞻
- 第1题
- 第2题
- 第3题
- 第4题
- 第5题
- 第6题
- 第7题
- 二、错题展示及其解析
- 第1题
- 第2题
- 第3题
- 第4题
- 第5题
- 第6题
- 第7题
一、错题知识点前瞻
第1题
数组的初始化
数组的初始化有两种,分为静态初始化和动态初始化
静态初始化:int array[]=new int[]{element1,element2…}
或int array[]={element1,element2}
动态初始化:int array[]={element1,element2…}
第2题
对象构造初始化过程
1.初始化父类中的静态成员变量和静态代码块
2.初始化子类中的静态成员变量和静态代码块
3.初始化父类的普通成员变量和代码块,再执行父类的构造方法
4.初始化子类的普通成员变量和代码块,再执行子类的构造方法
第3题
线程安全类
1、Hashtable
2、Vetor
第4题
<< 与 <<< 符号
<<代表右移一位,<<< 代表无符号右移
第5题
编译与运行出错的区分
对于多态中的非静态属性或非静态方法,编译看左,运行看右。也就是在编译期间看左边的类中有无该方法/属性,而实际在运行时执行的是右边类的方法/属性。
第6题
内部类
1、静态内部类才可以声明静态方法
2、静态方法中不可以使用非静态变量
3、抽象方法中不可以有函数体(包括大括号)
第7题
Java默认整数型数据为int型,小数型数据为Double型
二、错题展示及其解析
第1题
原理:
数组的初始化
数组的初始化有两种,分为静态初始化和动态初始化
静态初始化:int array[]=new int[]{element1,element2…}
或int array[]={element1,element2}
动态初始化:int array[]={element1,element2…}
解析:C中静态初始化和动态初始化不可同时进行
第2题
原理:
对象构造初始化过程
1.初始化父类中的静态成员变量和静态代码块
2.初始化子类中的静态成员变量和静态代码块
3.初始化父类的普通成员变量和代码块,再执行父类的构造方法
4.初始化子类的普通成员变量和代码块,再执行子类的构造方法
解析:先执行父类成员变量输出Y,再调用父类构造函数输出X,再调用子类成员变量输出Y,最后调用子类构造函数输出Z,即答案为YXYZ
第3题
原理:
线程安全类
1、Hashtable
2、Vetor
第4题
原理:
<< 于 <<< 符号
<<代表右移一位,<<< 代表无符号右移
第5题
原理:
编译与运行出错的区分
对于多态中的非静态属性或非静态方法,编译看左,运行看右。也就是在编译期间看左边的类中有无该方法/属性,而实际在运行时执行的是右边类的方法/属性。
解析:
题中父类可以调用子类重写的方法,但不能调用子类新增的方法,因此语句b.bark()出错,由于b中无bark方法,因此会报编译错误
第6题
原理:
内部类
1、静态内部类才可以声明静态方法
2、静态方法中不可以使用非静态变量
3、抽象方法中不可以有函数体(包括大括号)
解析:
静态内部类才可以声明静态方法,AD错,抽象方法中不可以有函数体(包括大括号),B错,静态方法中不可以使用非静态变量,C错
第7题
原理:
Java默认整数型数据为int型,小数型数据为Double型