java - Java Bootstrap 类加载器是如何加载的?

标签 java classloader bootstrapping

在 Java 中,据说所有的类都由类加载器加载。

首先,引导类加载器会加载所有 rt.jar 类。

我仍然很困惑,因为 Classloader 也是一个类,所以谁会 加载这个 BootStrapClassloader?

最佳答案

答案:当 JVM 启动时,会运行一段特殊的机器代码来加载系统类加载器。此机器代码称为 Bootstrap/Primordial(或有时 - 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

关于java - Java Bootstrap 类加载器是如何加载的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18214174/

相关文章:

java - JBoss 启动 java.io.FileInputStream 初始化 AbstractKernelController 时出错

Angular 4 应用程序引导和入口点

embedded - 为嵌入式系统开发简单的引导加载程序

java - Guice 中的绑定(bind) : Compile time dependencies

java - 需要帮助查找错误

java - 决定运行时需要在 JBoss 上使用哪个库

java - 用于部署和测试的 Maven 类路径生成

ant - 是否有使用 ant junit 任务的可自定义类加载顺序?

java - 使用log4j2 2.5归档日志文件

java - 使用 PostgreSQL,为什么 Hibernate/JPA 不创建级联约束?