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文件被不同的类加载器加载就是两个不同的类。

        

  • 相关阅读:
    博客园的博客
    JAVASCRIPT拷贝内容到剪切板
    adobe acrobat pro 8.0/8.1 激活
    lighttpd+PHP上传文件
    windows上UPNP/DLNA服务器软件测试
    maven环境搭建
    Chrome调试博客地址
    struts2技术内幕读书笔记1
    git推送
    第九周助教小结
  • 原文地址:https://www.cnblogs.com/hrlizhi/p/14639918.html
Copyright © 2011-2022 走看看