类的主动初始化
类的初始化时机
❤:Java程序对类的使用方式分成:主动使用和被动使用,JVM必须在每个类或接口“首次主动使用”时才初始化它们;被动使用类不会导致类的初始化,主动使用的情况:
1)创建类实例
2)访问某个类或接口的静态变量
3)调用类的静态方法
4)反射某个类
5)初始化某个类的子类,而父类还没有初始化
6)JVM启动的时候运行的主类
7)定义了default方法的接口,当接口实现类初始化时
类的初始化机制和顺序
访问父类的静态变量,不会导致初始化
访问常量,不会导致类的初始化
类的卸载:
当代表一个类的Class对象不再被引用,那么Class对象的生命周期就结束了,对应的方法区中的数据也会被卸载
JVM自带的类加载器装载的类,,是不会卸载的,由用户自定义的类加载器加载的类是可以卸载的。
理解类从加载、连接、初始化到卸载的生命周期
理解类加载、类加载器、理解双亲委派模型
理解并掌握各种主动使用类的初始化时机