Java Bootstrap Classloader 是如何装入的?
2022-09-01 06:00:33
在java中,据说所有的类都是由类装入器装入的。
因此,首先,bootstrap 类装入器加载所有 rt.jar 类。
所以我仍然感到困惑,因为类加载器也是一个类,所以谁将加载这个BootStrapClassloader。
请解释。
在java中,据说所有的类都是由类装入器装入的。
因此,首先,bootstrap 类装入器加载所有 rt.jar 类。
所以我仍然感到困惑,因为类加载器也是一个类,所以谁将加载这个BootStrapClassloader。
请解释。
答:当 JVM 启动时,会运行一个特殊的机器代码块来加载系统类加载器。此机器代码称为 Bootstrap/原始(或有时 - Null)类加载程序。
它根本不是Java类,就像所有其他类装入器一样。引导类装入器是特定于平台的机器指令,可启动整个类装入过程。
除引导类装入器外,所有类装入器都作为 Java 类实现。必须加载第一个 Java 类装入器才能启动该过程。加载第一个纯 Java 类装入器是引导类装入器的工作。
引导类装入器还负责加载支持基本 Java 运行时环境 (JRE) 所需的所有代码,包括 java.util 和 java.lang 包中的类。
Bootstrap类装入器,作为一个类装入器和所有类,实际上是JVM Core的一部分,它是用本机代码编写的。
类装入器可以是对象,它们也需要一种表示。实际上,这也允许创建用户定义的类装入器。