一、错题知识点前瞻

第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型



更多推荐