From 61fa045fec8504bc4d3faa0b2c608615325cdec0 Mon Sep 17 00:00:00 2001 From: JIANGZEHUI0319 <51858329+JIANGZEHUI0319@users.noreply.github.com> Date: Wed, 2 Jul 2025 20:39:51 +0800 Subject: [PATCH] Update classloader.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 判断一个类加载器是不是被BootstrapClassLoader 加载的,应该使用XXXClaissLoader.getClass().getClassLoader()是不是为null来判断,getParent()只是获取类加载器在委派链中的父类加载器,两个是不同概念。我可以自定义一个类加载器,通过new MyClassLoader(null)主动设置parent为null打破双亲委派。但是我的MyClassLoader这个类是被AppClassLoader加载的。 --- docs/java/jvm/classloader.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/jvm/classloader.md b/docs/java/jvm/classloader.md index 35a8bfd0..d9a98f35 100644 --- a/docs/java/jvm/classloader.md +++ b/docs/java/jvm/classloader.md @@ -101,7 +101,7 @@ JVM 中内置了三个重要的 `ClassLoader`: 除了 `BootstrapClassLoader` 是 JVM 自身的一部分之外,其他所有的类加载器都是在 JVM 外部实现的,并且全都继承自 `ClassLoader`抽象类。这样做的好处是用户可以自定义类加载器,以便让应用程序自己决定如何去获取所需的类。 -每个 `ClassLoader` 可以通过`getParent()`获取其父 `ClassLoader`,如果获取到 `ClassLoader` 为`null`的话,那么该类是通过 `BootstrapClassLoader` 加载的。 +每个 `ClassLoader` 可以通过`getParent()`获取其父 `ClassLoader`,如果获取到 `ClassLoader` 为`null`的话,那么该类加载器的父类加载器是 `BootstrapClassLoader` 。 ```java public abstract class ClassLoader {