类的主动引用(一定会发生类的初始化)
当虚拟机启动, 先初始化 main 方法所在的类
new 一个类的对象
调用类的静态成员 (除了 final 常量) 和静态方法
使用 java.lang.reflect 包的方法对类进行反射调用.
当初始化一个类, 如果其父类没有被初始化, 则先会初始化它的父类
类的被动引用(不会发生类的初始化)
当访问一个静态域时, 只要真正声明这个域的类才会被初始化. 如: 当通过子类引用父类的静态变量, 不会导致子类初始化
通过数组定义类引用, 不会触发此类的初始化
引用常量不会触发此类的初始化(常量在链接阶段就存入调用类的常量池中)
来源: http://www.bubuko.com/infodetail-3395003.html