1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-07-11 18:57:06 +08:00

Update classloader.md

判断一个类加载器是不是被BootstrapClassLoader 加载的,应该使用XXXClaissLoader.getClass().getClassLoader()是不是为null来判断,getParent()只是获取类加载器在委派链中的父类加载器,两个是不同概念。我可以自定义一个类加载器,通过new MyClassLoader(null)主动设置parent为null打破双亲委派。但是我的MyClassLoader这个类是被AppClassLoader加载的。
This commit is contained in:
JIANGZEHUI0319 2025-07-02 20:39:51 +08:00 committed by GitHub
parent 93c6cdd981
commit 61fa045fec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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 {