java类加载器和双亲委派模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yb464855952/article/details/81194471

类加载器:
    类加载:
        我们编写的.java文件,jvm会将变成.class文件.该文件要想运行,必须加载内存中,然后会生成一个对象.Class对象
    类加载器层次结构
        引导类加载器:负责将 Java_Home/lib下面的类库加载到内存中(比如rt.jar,runtime.jar)。由于引导类加载器涉及到虚拟                                   机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。 
       扩展类加载器:是由 Sun 的 ExtClassLoader(sun.misc.Launcher$ExtClassLoader)实现的。它负责将Java_Home /lib/ext                                  或者由系统变量 java.ext.dir指定位置中的类库加载到内存中。开发者可以直接使用标准扩展类加载器。                                         ext/*.jar
     应用类加载器:是由 Sun 的 AppClassLoader(sun.misc.Launcher$AppClassLoader)实现的。它负责将系统类路径                                           (CLASSPATH)中指定的类库加载到内存中。开发者可以直接使用系统类加载器。由于这个类加载器是                                        ClassLoader中的getSystemClassLoader()方法的返回值,因此一般称为系统(System)加载器。 (我们自                                己编写类)。

    全盘负责委托机制:双亲委派模型
        当一个类运行的时候,有可能有其他类,应用类加载器询问扩展类加载器:你加载过这些类吗?
        扩展类加载器在向上问(引导类加载器):你加载过这些类吗?
        引导类加载器:我查查,有一个是我负责,我加载.
        扩展类加载器:接下来我来查,有几个是我负责,我加载,还有几个类我已经加载完成了,你可以直接使用
        应用类加载器:收到了 剩下的我来

猜你喜欢

转载自blog.csdn.net/yb464855952/article/details/81194471