目录
1.1 启动类加载器(Bootstrap ClassLoader):
1.2 扩展类加载器(Extension ClassLoader):
1.3 应用程序类加载器(Application ClassLoader):
Java虚拟机(JVM)的类加载器(ClassLoader)负责将类的字节码加载到内存中,并将其转换为运行时的类。类加载器在Java中有不同的分类,而双亲委派机制是一种类加载器之间的协作机制,用于保证类的唯一性和安全性。
?
这是Java虚拟机的一部分,用于加载Java的核心类库,如java.lang
包中的类。它是JVM的一部分,通常用本地代码来实现,不是Java类。
负责加载Java的扩展类库,位于java.ext.dirs
系统属性所指定的目录中。通常是<JAVA_HOME>/lib/ext
目录。
也被称为系统类加载器,负责加载应用程序classpath下的类。它是ClassLoader类的子类,通常由Java虚拟机的实例化进程实例化。
开发者可以通过继承ClassLoader类来自定义类加载器,实现自己的加载逻辑。这样的类加载器被称为用户自定义类加载器。
双亲委派机制是一种层次化的类加载器结构,保证类的唯一性和安全性。当一个类加载器收到加载类的请求时,它首先会检查这个类是否已经被加载过,如果已经加载过,就直接返回该类的Class对象;如果未加载过,它会将请求委派给父类加载器去加载,一直向上委派,直到到达启动类加载器。
工作流程如下:
这种机制的好处是避免了重复加载,确保类的唯一性,同时也提高了安全性,防止恶意类的加载。
自定义类加载器时,通常需要重写findClass
方法来实现自己的加载逻辑,同时可以选择是否破坏双亲委派机制。
什么是tomcat?tomcat是干什么用的?-CSDN博客
腾讯-轻量应用服务器centos7中宝塔安装MySQL8.0出现内存不足-CSDN博客Synchronized 优化-CSDN博客腾讯-轻量应用服务器centos7中宝塔安装MySQL8.0出现内存不足-CSDN博客