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

    双亲委派模型

    从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言来实现,是虚拟机自身的一部分;另外一种就是其他所有的类加载器,这些类加载器都是有Java语言实现的,独立于虚拟机外部,并且全部继承自抽象类java.lang.ClassLoader

    ​ congJava开发人员的角度来讲,类加载器还可以划分的更加细致一些,绝大部分Java语言使用到下面3种系统提供的类加载器。

    • 启动器类加载器(Bootstrap ClassLoader):前面已经介绍过,这个类加载器负责将放在<JAVA_HOME>lin目录中的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的(济南文件名识别,如rt.jar,名字不符合的类库即使在lib文件目录中也不会被加载到虚拟机内存中。启动类加载器无法被Java程序直接应用,用户在编写自定义类加载器时,如果需要把加载请求为派给引导类加载器,那直接使用null代替即可。
    • 拓展类加载器(Extension ClassLoader):这个加载器由sun.musc.Launcher$ExtClassLoader实现,他负责加载<JAVA_HOME>libext目录中的,或者被java.ext.dirs系统环境变量所指定的路径中的所有类库,开发者可以直接使用拓展类加载器。
    • 应用程序类加载器(Application ClassLoader):这个类加载器由sun.misc.Launcher$AppClassLoader实现,由于这个类加载器是ClassLoader中的getSystemClassLoader()方法的返回值,所以一般也将他称作系统类加载器。负责加载用户类路径上指定的类库,开发者可以直接使用这个类加载器,如果应用程序中没有自定义过自己的类加载器,一般情况下就是这个应用程序中默认的类加载器。

    破坏双亲委派模型

    • jdk1.2之前的loadClass()
    • 自身缺陷的需要基础类调用回用户的代码。
    • 热部署
    内容来自博客园,拒绝爬虫网站
  • 相关阅读:
    some ideas
    zz 牛人啊
    zz 史上最全--各银行借记卡的年费、小额管理费、转账费等!
    哪裡可以買郵票
    : 求靠谱灭蟑螂的方法
    zz 【见闻八卦】《金融时报》年度商业书单:互联网题材占一半
    IOS开发基础知识--碎片6
    IOS开发基础知识--碎片5
    IOS开发基础知识--碎片4
    IOS中关于KVC与KVO知识点
  • 原文地址:https://www.cnblogs.com/Heliner/p/10524915.html
Copyright © 2011-2022 走看看