【Java】类的初始化顺序
静态变量(类变量)
存储在方法区的类中,JVM加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行
成员变量(实例变量)
存储在堆内存的对象中,有默认的初始化值
局部变量
存储在栈内存的方法中,无默认初始化值
类初始化顺序:
-
初始化构造时,先父后子;父子静态都初始化完后,跟据需要再初始化父子非静态部分
-
类加载顺序:静态——非静态——构造函数
- 同一类属性按出现在类定义里面的先后顺序初始化
- 静态只执行一次,非静态new多少次执行几次
-
java中的类只有在被用到的时候才会被加载
-
java类只有在类字节码被加载后才可以被构造成对象实例
综上,
类内部静态块 = 类静态属性(按出先后顺序初始化) > 类内部属性 > 类构造函数
扩展
https://www.cnblogs.com/UncleWang001/articles/10429801.html
https://www.cnblogs.com/UncleWang001/articles/13453679.html

浙公网安备 33010602011771号