类加载的时机
- 主动引用引起加载:new,引用static属性,引用static方法,反射,main方法,加载父类
- 被动引用不加载,通过子类引用父类static变量,通过数组,引用常量
类加载顺序
- 加载,连接(验证,准备,解析),初始化,使用,卸载
加载
- 获得class二进制,加载到方法区,生成class对象
- 数组对象不需要加载,jvm直接生成
验证
准备
- static变量设0值
- final常量直接设初始值
解析
- 符号引用变为直接引用
初始化
- clinit
类加载器
- 四层结构:引导类加载器,扩展类加载器,应用类加载器,自定义加载器
- 双亲委派机制:为了保证相同的类被相同的加载器加载,jvm认为即使相同的类被不同的加载器加载也是不同的类
- 非双亲委派机制
76

被折叠的 条评论
为什么被折叠?



