java的双亲委派机制

Posted 酷酷的狐狸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的双亲委派机制相关的知识,希望对你有一定的参考价值。

类加载器的双亲委派机制

1)启动类加载器:null(不是由java实现)

  System.out.println(类名.class.getClassLoader().getParent().getParent());

  启动类加载器加载java核心库(java路径下jre/lib、classes)

2)扩展类加载器:sun.misc.Launcher$ExtClassLoader@5010be6

  System.out.println(类名.class.getClassLoader().getParent());

  扩展类加载器加载java扩展类库(java路径下jre/ext、/jre/ext/classes)

3)应用类加载器:sun.misc.Launcher$AppClassLoader@18b4aac2

  System.out.println(类名.class.getClassLoader());

  应用类加载器加载环境变量classpath下面的类

 

java的加载顺序是:启动类加载器 -> 扩展类加载器 -> 应用类加载器,如果要加载的类名在三者都存在,那会按照此顺序,优先找启动类加载器,如果找到会返回结果,否则返回null,再在扩展类加载器查询结果,如果找到会返回结果,否则返回null,然后再去应用类加载器查询结果,如果找到会返回结果,否则返回异常。

以上是关于java的双亲委派机制的主要内容,如果未能解决你的问题,请参考以下文章

双亲委派机制

双亲委派机制

双亲委派机制

双亲委派模型,类的加载机制,搞定大厂高频面试题

JVM笔记二双亲委派机制

java加载类为什么要设计“双亲委派机制”?