关于JDK中自带的类加载器
前言
简单了解
一、什么是类加载器?
专门负责加载类的命令/工具。
ClassLoader
二、JDK中自带了三个类加载器
1、启动类加载器:rt.jar
2、扩展类加载器: ext\*.jar
3、应用类加载器: classpath
1.假设有这样的一段代码:
String s = "abc";
代码在开始执行之前,会将所需要的类全部加载到JVM当中。 通过类加载器加载.
看到以上代码类加载器会去找String.class文件,找到就加载。
1.1那么是怎么进行加载的呢?
首先通过"启动类加载器"加载
注意:启动类加载器专门加载这个包下的东西:C:\Program Files\Java\jdk1.8.0_101\jre\lib\rt.jar
这是JDK中核心的类库
1.2 如果通过"启动类加载器"加载不的到时候,
就会通过扩展类加载器去加载:C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext*.jar
1.3 如果"扩展类加载器"没有加载到,那么会通过"应用类加载器"加载。
注意:应用加载器专门加载:classpath中的类。
三、双亲委派
优先从启动类加载器中加载,这个称为"父",
“父"无法加载到,再从扩展类中加载, 这个称为"母”。这就是双亲委派。
如果都加载不到才会考虑从应用类加载器中加载。直到加载到为止。