Java Bootstrap Classloader 是如何装入的?

2022-09-01 06:00:33

在java中,据说所有的类都是由类装入器装入的。

因此,首先,bootstrap 类装入器加载所有 rt.jar 类。

所以我仍然感到困惑,因为类加载器也是一个类,所以谁将加载这个BootStrapClassloader。

请解释。


答案 1

:当 JVM 启动时,会运行一个特殊的机器代码块来加载系统类加载器。此机器代码称为 Bootstrap/原始(或有时 - Null)类加载程序。

它根本不是Java类,就像所有其他类装入器一样。引导类装入器是特定于平台的机器指令,可启动整个类装入过程。

除引导类装入器外,所有类装入器都作为 Java 类实现。必须加载第一个 Java 类装入器才能启动该过程。加载第一个纯 Java 类装入器是引导类装入器的工作。

引导类装入器还负责加载支持基本 Java 运行时环境 (JRE) 所需的所有代码,包括 java.util 和 java.lang 包中的类。

资料来源:http://www.theserverside.com/tutorial/Classloaders-Demystified-Understanding-How-Java-Classes-Get-Loaded-in-Web-Applications


答案 2

Bootstrap类装入器,作为一个类装入器和所有类,实际上是JVM Core的一部分,它是用本机代码编写的。

类装入器可以是对象,它们也需要一种表示。实际上,这也允许创建用户定义的类装入器。


推荐