java虚拟机类加载双亲委派模型

  • 来源:
  • 更新日期:2018-05-21

摘要:双亲委派模型除了顶层的加载器其它加载都必须有自己的父类加载器。

 双亲委派模型除了顶层的加载器其它加载都必须有自己的父类加载器。

双亲委派模型:如果一个类收到了加载类的请求它首先会交给父类加载器去加载而且每一层都是这样。如果父类最终反馈不能加载子加载器才会加载。
blackfriday.jpg
加载器的分类
启动加载器:这个加载器负责加载JAVA_HOMElib下面的JAR而且需要虚拟机识别。否则即使手动放到当前目录也不会加载。它不是java类嵌套在虚拟机中是虚拟机的一部分由c++编写。
扩展类加载器:它负责加载JAVA_HOMElibext中的JAR开发者可以直接使用当前加载器。
应用程序加载:一般也叫做系统类加载器它负责用户路径classpath下的类库。如果程序中没有扩展自己的加载器一般默认都是当前的类加载。
补充:类加载器用于类加载,个类加载器都拥有一个独立的命名空间比较2个类是否相等的首要条件便是需同一个类加载否则2个类源于同一个Class文件。同一个虚拟机但是加载器不一样就不会相等。
 
编码分析
public class Test {
public static void main(String[] args) {System.out.println(System.class.getClassLoader());}}
最终输出为null之前小编已经说到rt.jar由系统加载器加载(System类所属rt.jar)。他是由虚拟机内部加载的所以在java运行时获取为null。
以上就是小编对于java虚拟机类加载双亲委派模型的全部介绍,各位大神有感兴趣的可以在下面发表自己的看法。