Java双亲委派模型如何影响类加载?

2026-05-05 17:120阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1561个文字,预计阅读时间需要7分钟。

Java双亲委派模型如何影响类加载?

双亲委托机制:当一个类加载器准备加载一个.class字节码文件时,它会将加载任务委托给上一级的类加载器。上一级类加载器再将其委托给更上一级的类加载器,如此递归,直到委托到最顶层的启动类加载器。这样,每个类加载器只需负责加载其委托链上的类,减轻了加载器的负担。

双亲委派机制:当某个类加载器准备加载一个.class字节码文件时,它首先将这个加载任务委派给上一级类加载器,上一级加载器再委派到更上一级类加载器,递归这个操作直到最顶级的类加载器。

一、类加载器的类别

在介绍Java的双亲委派机制的时候,不得不提ClassLoader(类加载器)

我们编译的Java代码是如何在JVM中运行的?首先源程序(.java文件)被Java编译器编译为.class字节码文件,然后ClassLoader负责将这些class文件加载到JVM中去执行。

如上图所示:JVM提供了三层类加载器

  1. BootStrapClassLoader(引导类加载器)

    引导类加载器:用C++编写,是Java自带的类加载器,用于加载JDK内部的类;主要负责加载核心的类库,构造ExtensionClassLoaderAppClassLoader。Bootstrap类加载器用于加载JDK中$JAVA_HOME/jre/lib下面的那些类,比如rt.jar包里面的类。

    由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到引导类加载器的引用,所以不允许直接通过引用进行操作。

阅读全文

本文共计1561个文字,预计阅读时间需要7分钟。

Java双亲委派模型如何影响类加载?

双亲委托机制:当一个类加载器准备加载一个.class字节码文件时,它会将加载任务委托给上一级的类加载器。上一级类加载器再将其委托给更上一级的类加载器,如此递归,直到委托到最顶层的启动类加载器。这样,每个类加载器只需负责加载其委托链上的类,减轻了加载器的负担。

双亲委派机制:当某个类加载器准备加载一个.class字节码文件时,它首先将这个加载任务委派给上一级类加载器,上一级加载器再委派到更上一级类加载器,递归这个操作直到最顶级的类加载器。

一、类加载器的类别

在介绍Java的双亲委派机制的时候,不得不提ClassLoader(类加载器)

我们编译的Java代码是如何在JVM中运行的?首先源程序(.java文件)被Java编译器编译为.class字节码文件,然后ClassLoader负责将这些class文件加载到JVM中去执行。

如上图所示:JVM提供了三层类加载器

  1. BootStrapClassLoader(引导类加载器)

    引导类加载器:用C++编写,是Java自带的类加载器,用于加载JDK内部的类;主要负责加载核心的类库,构造ExtensionClassLoaderAppClassLoader。Bootstrap类加载器用于加载JDK中$JAVA_HOME/jre/lib下面的那些类,比如rt.jar包里面的类。

    由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到引导类加载器的引用,所以不允许直接通过引用进行操作。

阅读全文