Java错题记录(4)
1.
java类是单继承的。classB Extends classA java接口可以多继承。Interface3 Extends Interface0, Interface1, interface…… 不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢? 但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。
2.
在JVM调用mian方法之前先用进行静态内容的初始化。顺序为:父类的静态变量, 父类的静态代码块 ,子类的静态变量,子类的静态代码块。
静态初始化块,静态变量这两个是属于同一级别的,是按代码写得顺序执行的! 而不是先执行静态变量后执行静态初始化块!这是错的。举个例子: public class Test{ static{ cnt = 6; } static int cnt = 100; public static void main(String[] args){ System.out.println("cnt = " + cnt); //最后输出是50,如果按照错误说法就应该是3 //按顺序执行就是cnt=6--->cnt=100---->cnt = 100/2 = 50. } static{ cnt /= 2; } }
3
Interger的范围时[-128,127],在这个范围内比较大小,相等为true,超过范围为false Integer a = 1; Integer b = 1; Integer c = 500; Integer d = 500; System.out.print(a == b);//返回结果true System.out.print(c == d);//返回结果false
4
栈-先进后出(比喻:坐电梯) 队列-先进先出(水管) list-链表(怎么存就怎么取)