jvm组成-类加载器

简介: 了解jvm组成-类加载器

类加载器(Class Loader)是Java虚拟机(JVM)的一个重要组成部分,它负责将编译后的Java类文件加载到内存中,并生成对应的Java类对象。类加载器有三个主要层次结构:启动类加载器(Bootstrap Class Loader)、扩展类加载器(Extension Class Loader)和应用程序类加载器(Application Class Loader)。

  1. 启动类加载器(Bootstrap Class Loader):
  • 是JVM的内置类加载器,由C++实现,是JVM的一部分,不是Java类。
  • 加载JRE核心类库(如rt.jar)等,位于%JAVA_HOME%/jre/lib目录下。
  • 是最顶层的类加载器,没有父类加载器。
  • 主要负责加载核心类库,提供最基础的功能支持。
  1. 扩展类加载器(Extension Class Loader):
  • 是sun.misc.Launcher$ExtClassLoader类的实例,是Java类。
  • 加载JRE的扩展目录(%JAVA_HOME%/jre/lib/ext)下的JAR包和类。
  • 父类加载器为启动类加载器。
  • 主要负责加载Java的一些扩展库。
  1. 应用程序类加载器(Application Class Loader):
  • 是sun.misc.Launcher$AppClassLoader类的实例,是Java类。
  • 加载应用程序classpath下的类,包括用户自定义类和第三方库。
  • 父类加载器为扩展类加载器。
  • 是大多数Java应用程序默认的类加载器。

在类加载过程中,类加载器采用双亲委派模型(Parent Delegation Model)来实现类的加载。当需要加载一个类时,首先会委派给父类加载器去尝试加载,只有当父类加载器无法加载时,才由当前类加载器去加载。这种模型的优势在于可以确保类的唯一性和安全性。

除了默认的三个类加载器外,还可以通过自定义类加载器来加载特定的类,满足特定的需求,比如从非标准的位置加载类文件、动态生成类等。

类加载器是Java虚拟机的重要组成部分,它可以根据不同的需求加载不同的类,使得Java应用程序具有更高的灵活性和可扩展性

目录
相关文章
|
5月前
|
Java
jvm---类加载器(1)
jvm---类加载器(1)
|
7月前
|
Arthas 测试技术
【面试题精讲】JVM-类加载器-使用Arthas查看类加载器
【面试题精讲】JVM-类加载器-使用Arthas查看类加载器
【面试题精讲】JVM-类加载器-使用Arthas查看类加载器
|
8月前
|
Java 应用服务中间件
《深入理解java虚拟机》——Tomcat类加载器体系结构
《深入理解java虚拟机》——Tomcat类加载器体系结构
|
7月前
【面试题精讲】JVM-类加载器-应用场景
【面试题精讲】JVM-类加载器-应用场景
|
5天前
|
前端开发 Java 开发者
JVM类加载器的分类以及双亲委派机制
JVM类加载器的分类以及双亲委派机制
|
16天前
|
监控 前端开发 安全
JVM工作原理与实战(十四):JDK9及之后的类加载器
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了JDK8及之前的类加载器、JDK9及之后的类加载器等内容。
19 2
|
16天前
|
监控 Java 关系型数据库
JVM工作原理与实战(十三):打破双亲委派机制-线程上下文类加载器
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了打破双亲委派机制的方法、线程上下文类加载器等内容。
15 2
|
7月前
|
存储 缓存 前端开发
【面试题精讲】JVM-类加载器
【面试题精讲】JVM-类加载器
|
7月前
|
Java
【面试题精讲】JVM-类加载器-Java中的默认类加载器
【面试题精讲】JVM-类加载器-Java中的默认类加载器
|
3月前
|
Java 应用服务中间件
深入理解JVM - 类加载器概述
深入理解JVM - 类加载器概述
19 0