持续一些不容易被注意或者容易忘记的小点

1.Integer.valueOf(123) :会先去缓存迟查找有没有当前对象,有就直接调用缓存池中的对象。Integer缓存池的大小为-128~127

2.String Pool在java8之后从运行时常量池移到了堆

3.Switch不能用long类型

4.final关键字对于引用类型,不能改变引用,但是引用的对象本身可以改变

5.静态变量也叫类变量,类的所有实例共享

6.静态方法只能访问所属类的静态字段和静态方法,方法中不能有this和super

7.静态语句块在类初始化时运行一次,如果new出很多实例也只运行一次

8.静态内部类不依赖于外部类实例,不能访问外部类的非静态的变量和方法

9.存在继承的情况下,初始化顺序为:(静态变量和静态语句块的顺序取决于在程序中的顺序)

  • 父类(静态变量、静态语句块)
  • 子类(静态变量、静态语句块)
  • 父类(实例变量、普通语句块)
  • 父类(构造函数)
  • 子类(实例变量、普通语句块)
  • 子类(构造函数)

 

 

收藏 打印