jvm类加载器
JVM类加载器是Java虚拟机(JVM)的一部分,它负责将类的字节码加载到内存并转换为可执行的Java类。以下是关于JVM类加载器的详细解释:
一、类加载器的定义
类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。它会通过二进制流的方式获取到字节码文件的内容,然后将获取到的数据交给Java虚拟机。虚拟机会在方法区和堆上生成对应的对象保存字节码信息。
二、类加载器的作用
- 负责将.class文件(存储的物理文件)加载到内存中。
- 通过加载字节码数据放入内存转换成byte[],然后调用虚拟机底层方法将byte[]转换成方法区和堆中的数据。
- 确保Class文件字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身安全。
三、类加载器的分类
JVM中的类加载器主要分为以下几类:
-
启动类加载器(Bootstrap ClassLoader):
- 由JVM自身实现,通常使用C++编写,不是Java类。
- 负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class或Xbootclasspath选项指定的jar包。
- 它是所有类加载器的顶层类加载器,无法被Java程序直接引用。
-
扩展类加载器(Extension ClassLoader):
- 由Java实现,继承自ClassLoader类。
- 负责加