持续一些不容易被注意或者容易忘记的小点
1.Integer.valueOf(123) :会先去缓存迟查找有没有当前对象,有就直接调用缓存池中的对象。Integer缓存池的大小为-128~127
2.String Pool在java8之后从运行时常量池移到了堆
3.Switch不能用long类型
4.final关键字对于引用类型,不能改变引用,但是引用的对象本身可以改变
5.静态变量也叫类变量,类的所有实例共享
6.静态方法只能访问所属类的静态字段和静态方法,方法中不能有this和super
7.静态语句块在类初始化时运行一次,如果new出很多实例也只运行一次
8.静态内部类不依赖于外部类实例,不能访问外部类的非静态的变量和方法
9.存在继承的情况下,初始化顺序为:(静态变量和静态语句块的顺序取决于在程序中的顺序)
- 父类(静态变量、静态语句块)
- 子类(静态变量、静态语句块)
- 父类(实例变量、普通语句块)
- 父类(构造函数)
- 子类(实例变量、普通语句块)
- 子类(构造函数)