system class loader和appclassloader

在看类加载器的层次图的时候,发现在同一个层次上不同的图是不一样的,有的是system class loader,而有的是appclassloader,所以想问一下system class loader和appclassloader是同一个加载器吗?是不是只是名称不同。

能不能把这个图贴出来看看?

---

接题主提出的图,继续回答:

首先要知道在JDK中并没有SystemClassLoader这个类。

其次,Java虚拟机规范中指出,Class Loader分为Bootstrap Class Loader以及User-defined Class Loader,其中Bootstrap Class Loader是由Java虚拟机使用C++实现的,没有对应的Java对象。

所谓User-defined Class Loader,其实也没有叫这个名称的Java对象,这里是一种泛称,直译过来为用户定义的Class Loader,对应JDK中的Java对象是java.lang.ClassLoader及其子类,除此之外,JDK中还提供了sun.misc.Launcher.ExtClassLoader以及sun.misc.Launcher.AppClassLoader。

由于CSDN对Markdown语法支持比较差,并且我之前有写过相关的博客,所以这里我就不展开了,需要的话,你可以直接访问https://blog.baofeidyz.com/%E7%B1%BB%E7%9A%84%E5%8A%A0%E8%BD%BD-%E9%93%BE%E6%8E%A5%E5%92%8C%E5%88%9D%E5%A7%8B%E5%8C%96-%E5%9F%BA%E4%BA%8EJava-1.8/

查看。

关于Java虚拟机规范的描述,可以访问https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-5.html 查看。

 

由于图片中的上下文,我并不是很清楚,所以没有直接回答你的问题,希望你能从我的答复中找到答案。