2021-7-23. Java之classLoader的delegate model

Java之classLoader的delegate model

classLoader负责将字节序列转为Class, 多个classLoader按照父子关系构成层次关系(通常是).

  • 其根classLoader称作Bootstrap classLoader, JDK中是null;
  • 然后是Platform classLoader, 负责JDK中class的载入.
  • 再之是System classLoader, 也称作application classLoader.

特别注意, 在复杂情形时, 多个classLoader有可能组成的是网状结构. 不赘述.

需要载入class时, vm采用delegation方式进行,

  • 首先, 请求parent classLoader载入该class, (递归). 若不成功, 则进行下一步.
  • 自己执行载入工作.

采用delegation model的主要原因是防止对class载入时的非法篡改.

一花一世界 2021/7/23

上一篇:Java类加载器(ClassLoader)


下一篇:Spark 如何摆脱java双亲委托机制优先从用户jar加载类?