类加载器和双亲委派机制

类加载器

类加载器可以分为三种:

引导类加载器(根加载器 Bootstrap ClassLoader):

负责加载jre/rt.jar核心类库
    它本身不是java代码实现的,也不是ClassLoader的子类,获取该对象往往返回null

拓展类加载器(Extension ClassLoader JDK9之前)

	它负责加载jre/lib/ext拓展库
    它是根加载器的子类
	Java 9 引入了模块系统,并且略微更改了上述的类加载器。扩展类加载器被改名为「平台类加载器(platform class loader)」。
   	Java SE 中除了少数几个关键模块,比如说 java.base 是由启动类加载器加载之外,其他的模块均由平台类加载器所加载。

应用程序类加载器(Application ClassLoader)

负责加载项目Classpath路径下的类
它是拓展类加载器的子类

自定义类接载器

需要用到自定义加载器的地方:
    1. 需要加载特定目录下的类
    2. 程序的字节码文件需要加密,往往需要提供一个自定义类加载器进行解码
    tomcat中便使用到了自定义类加载器

双亲委派机制:
不是继承关系,是组合的方式实现的。

image-20230201085239909

posted @ 2023-02-01 09:08  情韵  阅读(32)  评论(0编辑  收藏  举报