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