原创转载请注明出处:http://agilestyle.iteye.com/blog/2369539
JVM自带的加载器
- 根类加载器(Bootstrap)(C++编写)
- 扩展类加载器(Extension)(Java编写)
- 系统类加载器System)(也被称为应用类加载器,Java编写)
用户自定义的类加载器
- java.lang.ClassLoader的子类
- 用户可以定制类的加载方式
Java的可执行文件不同于C/C++,Java编译器只产生中间字节码文件(.class文件),由Java虚拟机(java.exe)解释执行。Java发布的程序(JAR包)也多半是一堆class文件,运行时由ClassLoader加载到Java虚拟机中执行。ClassLoader是Java虚拟机的主要组成部分,由Java语言编写,用户可以实现自定义的ClassLoader来完成特定的功能。
JVM规范定义了两种类型的ClassLoader
- Bootstrap ClassLoader
- User-defined ClassLoader
JVM在运行时会产生三个ClassLoader
- Bootstrap ClassLoader
- Extension ClassLoader
- AppClassLoader
Bootstrap是用C++编写的,我们在Java中看不到它,是null,是JVM自带的类装载器,用来装载核心类库,如java.lang.*等。
AppClassLoader的Parent是ExtClassLoader,而ExtClassLoader的Parent为Bootstrap ClassLoader。
相关推荐
### Java 类加载器详解 #### 一、类加载器概述 在Java中,类加载器(Class ...通过理解和掌握类加载器的工作原理及其不同类型的加载器,可以帮助开发者更好地管理Java应用程序的依赖关系,提高程序的性能和可维护性。
Java 类加载器是Java运行时环境的一个重要组成部分,它的主要职责是将编译后的字节码(.class文件)加载到JVM中,使得程序能够运行。类加载器的机制保证了类的唯一性,同时也提供了灵活性,允许我们自定义加载逻辑。...
本文深入探讨了 Java 类加载器的概念、类型、工作机制以及如何实现自定义类加载器。通过理解类加载器,开发者可以更好地控制类的加载过程,提高应用的性能和安全性。希望本文能帮助你更深入地理解 Java 类加载器及其...
2. 类加载器类型: - 启动类加载器(Bootstrap ClassLoader):加载JDK核心类库,如rt.jar。 - 扩展类加载器(Extension ClassLoader):加载JRE扩展目录下的jar文件。 - 应用类加载器(Application ClassLoader...
Java 类加载器(ClassLoader)是Java虚拟机(JVM)的核心组成部分,负责在运行时查找并加载类的字节码。了解ClassLoader的工作机制对于优化应用性能、实现安全控制以及进行插件化开发至关重要。 首先,Java的...
Java类加载器是Java虚拟机(JVM)的重要组成部分,它的主要职责是将类的字节码文件(.class文件)从文件系统、网络或内存中读取,并转换为运行时的java.lang.Class对象。这个过程是Java动态加载机制的核心,使得Java...
Java中的类加载器系统主要包括以下几种类型的类加载器: 1. **Bootstrap ClassLoader**(启动类加载器):它是整个类加载器系统的根,负责加载存放在`<JDK_HOME>\lib`目录中的核心类库。该类加载器没有父类加载器,...
Java类加载器分为三种主要类型:引导类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)和应用程序类加载器(Application ClassLoader,也称为系统类加载器)。它们共同工作,确保了Java...
- `java.lang.Class`类:代表Java中的所有类的类型,类加载器在加载类时会生成对应的`Class`对象。 - `Class.newInstance()`方法:通过类对象创建该类的一个实例,要求该类有一个无参构造方法。 - 类路径(classpath...
#### 类加载器的类型 - **引导类加载器(Bootstrap ClassLoader)**:它是系统自带的类加载器,负责加载Java的核心类库(位于`rt.jar`中),无法被Java程序直接引用。 - **扩展类加载器(Extension ClassLoader)**...
Java的类加载器体系结构由三个主要类型的类加载器组成: 1. **引导类加载器(Bootstrap ClassLoader)**:这是最基础的类加载器,负责加载Java的核心库类,如`java.lang`包下的类。 2. **扩展类加载器(Extension ...
在Java中,类加载器和类加载机制是非常重要的概念,它们使得Java具备了动态加载和热部署的能力,极大地提高了程序的灵活性。类加载器负责将.class文件加载到Java虚拟机中,并生成对应的java.lang.Class对象,以便JVM...
Java 中存在多种类型的类加载器,每种类加载器都有其特定的作用范围: 1. **引导类加载器(Bootstrap Class Loader)**:这是系统级的类加载器,它负责加载 Java 核心类库,如 `java.lang.Object`。由于这是一个...
双亲委派模型是Java类加载器的重要特性之一,它的基本流程是:当一个类加载器收到加载类的请求时,它首先不会自己去尝试加载这个类,而是把请求委托给父类加载器去完成,每个层次的类加载器都是如此。如果父类加载器...
类加载器有多种类型,包括Bootstrap ClassLoader(启动类加载器)、Extension ClassLoader(扩展类加载器)和AppClass ClassLoader(应用程序类加载器)。Bootstrap ClassLoader负责加载JRE的核心库,Extension ...
在Java中,类加载器分为三种类型:BootstrapClassLoader(启动类加载器)、ExtensionClassLoader(扩展类加载器)和ApplicationClassLoader(应用程序类加载器)。这些类加载器并不是继承关系,而是通过组合关系复用...
此外,还有一个特殊类型的类加载器——线程上下文类加载器,稍后会单独讨论。 类加载器之间遵循双亲委派机制。这意味着当一个类加载器收到加载类的请求时,它会先委托给其父类加载器尝试加载。只有当父类加载器无法...
本文详细介绍了类加载的基础概念、类加载器的类型及其工作流程,并通过实际示例展示了如何创建自定义类加载器。掌握了这些知识后,开发者可以更好地应对各种复杂的编程挑战,避免常见的类加载错误,并提高应用程序的...