双亲委派模型

    当一个.class文件要加载进入java内存中需要借助ClassLoader

    在java虚拟机的角度考虑可以分为这么两种ClassLoader:

        由c++语言编写的BootStrapClassLoader,加载启动java虚拟机所需要的类,属于java虚拟机的一部分。

        其他ClassLoader,当载其他类。如ExtClassLoader和AppClassLoader和AppClassLoader

   三个核心ClassLoader:

        BootStrapClassLoader,加载%JAVA_HOME%/jre/lib下的jar包

        ExtClassLoader,加载%JAVA_HOME%/jre/lib/ext下的jar包

        AppClassLoader,上述两个加载器剩下的默认加载器。

    以上三个类是JDK提供的加载器,并不是继承关系,但是被称为父子类加载器,越往上越是父类加载器。

    双亲委派模型

        AppClassLoader是所有用户自定义的加载器的父类加载器,双新委派模型指的是,当子类加载器要加载一个class文件时,子类加载器会先传递让父类去加载,而父类也会往上传递,直到传至BootStrapClassLoader,如果BootSrapClassLoader无法加载,就会逐层传递下去,尝试让子类加载器去加载,如果一直传递到最初发起请求的类加载器都无法加载,则throw ClassNotFoundException

    双新委派模型确保了类在各种环境下有序加载,而且通过文件名规定了哪些类由哪些加载器加载也防止了不可信任类扮演信任类的角色。      

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值