类的初始化时机:
1:创建类的实例。
2: 访问某个类或接口的静态变量,或者对该静态变量赋值。
3:调用类的静态方法
4:反射(Class.forName("com...."));
5:初始化一个类的子类
6:Java虚拟机启动时被标明为启动类的类。
只有当程序访问的静态变量或静态方法确实在当前类或当前接口中定义时,才可以认为是对类或接口的主动使用。
调用ClassLoader类的loadClass方法加载一个类,并不是对一个类的主动使用,不会导致类的初始化
类的初始化时机:
1:创建类的实例。
2: 访问某个类或接口的静态变量,或者对该静态变量赋值。
3:调用类的静态方法
4:反射(Class.forName("com...."));
5:初始化一个类的子类
6:Java虚拟机启动时被标明为启动类的类。
只有当程序访问的静态变量或静态方法确实在当前类或当前接口中定义时,才可以认为是对类或接口的主动使用。
调用ClassLoader类的loadClass方法加载一个类,并不是对一个类的主动使用,不会导致类的初始化