笔记:类加载
ClassLoader
双亲委派机制:加载的时候从 custom 开始在内存中查找,app -> ext -> bootstrap,最终没有查找出来后会按 bootstrap -> ext -> app -> custom 的顺序查找并加载类,调用 findClass 和 loadClass 方法。该机制存在的原因是保障代码安全,防止原生类被入侵。如果需要打破该机制,需要自己实现 loadClass 方法,但是自定义类加载器只需要实现 findClass
类加载过程
加载
将类文件转为字节流加载到内存中
链接
- 校验:检验文件的正确性
- 准备:给静态成员变量赋默认值
- 解析:将类、方法、属性等符号引用解析为直接引用
初始化
给静态成员变量赋初始值
对象加载过程
分配内存
赋值
本文由 Meridian 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Feb 13,2022