类加载器分类
- JVM支持两种类型的类加载器,引导类加载器和自定义类加载器
- 将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器。(扩展类和系统类加载器都继承了ClassLoad)
- 无论类加载器的类型如何划分,再程序中我们最常见的类加载器始终只有三个
四者之间的关系是包含关系,不是上下层关系,也不是父子继承关系
启动类加载器---即引导类加载器
- 引导类加载器使用c/c++语言实现的,嵌套再JVM内部
- 用来加载Java核心库,用于提供JVM自身要的类
- 并不继承自Java.lang.ClassLoader,没有父加载器
- 加载扩展类和应用程序类加载器,并指定为他们的父类加载器
- 处于安全考虑,启动类加载器只加载包名为Java、javax、sun等开头的类
扩展类加载器
- java语言编写
- 派生于Class Loader类
- 父类加载器为启动类加载器
用户自定义类加载器
作用:隔离加载类 修改类加载的方式 扩展加载源 防止源码泄露