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