zoukankan      html  css  js  c++  java
  • 双亲委派模型

      双亲委派模型

       先看图

        java自带三种类加载器, BootStrapClassLoader,ExtClassLoaer,AppClassLoader,

        其中BootStrapClassLoader是最高级,ExtClassLoader是BootStrapClassLoader的子加载器,AppClassLoader是ExtClassLoader的子加载器。

        BootStrapClassLoader 负责加载jdk下lib下的文件,

        ExtClassLoader负责加载Ext文件夹下的文件。

        AppClassLoader负责加载平常我们所写的类和引入的jar包中的类。

        

        所以,当我们写一个类,需要加载的时候,就使用到了java的双亲委派机制。

        首先AppClassLoader 类加载器向上查找缓存,看ExtClassLoader是否加载过此类,如果加载,则直接从缓存中取,如果没有,则ExtClassLoader再向上查询

        BootStrapClassLoader类加载器是否加载过此类,如果加载,则缓存中取,没有的话,则查询加载路径,有则加载返回,没有则推给ExtClassLoader查找加载  

         路径,有则加载返回,没有则推给AppClassLoader查询加载路径,加载返回。

          

        双亲委派模型的好处

        

        1 主要为了安全性,避免用户自己编写的类动态替换java的核心类,比如用户自己编写一个String类。

        2 同时也避免了类的重复加载,因为jvm中区分不同类,不仅仅根据类名,相同的class文件被不同的类加载器加载就是两个不同的类。

        

  • 相关阅读:
    二叉查找树
    huffman coding
    普通树与二叉树
    递归转循环的通法
    尾递归和JAVA
    编译器和解释器
    开天辟地-用visualstudio2010编写helloworld
    Android app targetSdk升级到27碰到的一个bug补充说明
    Android Studio修改Apk打包生成名称
    Glide3升级到Glide4碰到的问题汇总以及部分代码修改
  • 原文地址:https://www.cnblogs.com/hrlizhi/p/14639918.html
Copyright © 2011-2022 走看看