类加载器
在Java中有两种不同的类加载器:一个是启动类加载器,该加载器是虚拟机的一部分,另外一个加载器就是其他类加载器也可以说是自定义类加载器。
启动类加载器
启动类加载器是负责将存放在JAVA_HOME>lib目录中的符合正确规则的类库进行加载到虚拟机内存当中。
自定义类加载器
在java中自定义类加载器分为两类一种是扩展类加载器,还有就是应用程序类加载器,不同的是扩展类加载器是可以让开发者直接使用的。应用程序类加载器如果用户没有自定义自己的加载器那么直接使用ClassLoader中的加载器getSystemClassLoader()来得到返回值。
类加载器的双亲委派模型
我们前面看到几种类加载器,我们的主题是双亲委派模型,那么该概念是什么呢? 简单来说就是当类加载器尝试加载某个类型的时候,除非附加载器找不到对应的类型,尽量将任务代理给当前的加载器的父加载器去操作。目的是避免重复加载Java类型。 通常类加载机制有三个基本特征:
双亲委派模型