笔记:类加载

in with 0 comment

笔记:类加载

ClassLoader

双亲委派机制:加载的时候从 custom 开始在内存中查找,app -> ext -> bootstrap,最终没有查找出来后会按 bootstrap -> ext -> app -> custom 的顺序查找并加载类,调用 findClass 和 loadClass 方法。该机制存在的原因是保障代码安全,防止原生类被入侵。如果需要打破该机制,需要自己实现 loadClass 方法,但是自定义类加载器只需要实现 findClass

类加载过程

加载

将类文件转为字节流加载到内存中

链接

  1. 校验:检验文件的正确性
  2. 准备:给静态成员变量赋默认值
  3. 解析:将类、方法、属性等符号引用解析为直接引用

初始化

给静态成员变量赋初始值

对象加载过程

分配内存

赋值