扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: Java > JVM高频面试题 > 22.类加载器有哪些

前面介绍了类的加载过程,类加载器的意义很容易理解,作用就是将类加载到虚拟机的内存中。

这里再提个挺重要的知识点,任何类都需要加载它的类和加载器和这个类本身确定其在Java虚拟机中的唯一性,也就是说要比较两个类是否相等,只有两个类由同一个类加载器加载的前提下才有意义,如果两个类不是由同一个类加载器加载,那么它一定不相等。

JVM主要提供三个类加载器:

  • 启动类加载器(Bootstrap ClassLoader):由C++语言实现,是虚拟机自身的一部分,负责加载存放在<JAVA_HOME>\lib(比如rt.jar、resources.jar、charsets.jar和class等),或被-Xbootclasspath参数所指定路径中的并且被虚拟机识别的类库。
  • 扩展类加载器(Extension ClassLoader):由Java语言实现,独立于虚拟机外部,负责加载<JAVA_HOME>\lib\ext目录中的类库。
  • 应用程序类加载器(Application ClassLoader):由Java语言实现,独立于虚拟机外部,负责加载用户路径上所指定的类库,如果程序中没有自己定义过的类加载器,一般情况这个是程序中的默认类加载器

点击面试手册,获取本站面试手册PDF完整版