Java类中的初始化顺序

1. 基本流程

  1. 先到JVM中已有的类中寻找是否已加载。若已加载,执行4,否则,执行2。
  2. JVM中的CLassLoader到CLASSPATH中寻找类文件,找到后将其加载。
  3. 执行静态变量的初始化和static语句。
  4. 若仅是访问静态变量或调用静态方法,则到此处停止。若调用构造函数,则进入5
  5. 初始化类字段(field)和执行位于{}中的语句
  6. 调用构造方法
2. 分析
  1. 整个过程可以分为两种类型:static和非static。他们的激活条件如下:
  2. static:当ClassLoader发现JVM中还未加载这个类时,通知ClassLoader去寻找并加载这个类
  3. 非static:当类实例被创建时会调用

原文地址:https://www.cnblogs.com/jubincn/p/3381192.html