【Java】类的初始化顺序

静态变量(类变量)

存储在方法区的类中,JVM加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行

成员变量(实例变量)

存储在内存的对象中,有默认的初始化值

局部变量

存储在内存的方法中,无默认初始化值

类初始化顺序:

  • 初始化构造时,先父后子;父子静态都初始化完后,跟据需要再初始化父子非静态部分

  • 类加载顺序:静态——非静态——构造函数

    • 同一类属性按出现在类定义里面的先后顺序初始化
    • 静态只执行一次,非静态new多少次执行几次
  • java中的类只有在被用到的时候才会被加载

  • java类只有在类字节码被加载后才可以被构造成对象实例

综上

类内部静态块 = 类静态属性(按出先后顺序初始化) > 类内部属性 > 类构造函数

扩展
https://www.cnblogs.com/UncleWang001/articles/10429801.html
https://www.cnblogs.com/UncleWang001/articles/13453679.html

posted @ 2021-04-02 20:58  Zeiion  阅读(134)  评论(0)    收藏  举报