关于JDK中自带的类加载器
1.什么是类加载器?
专门负责加载类的工具/命令
ClassLoader
2.JDK中自带3个类加载器
启动类加载器
扩展类加载器
应用类加载器
3 假设有一段这样代码
String b = “abc”;
代码在开始执行的时候,会将所有需要的类全部加载到JVM当中。
通过类加载器开始加载,看到以上代码类加载器会找到String.class
文件,找到就加载,那么是怎么进行加载的呢?
首先通过“启动类加载器” 加载(位于jdk配置文件jre/lib/rt.jar)
rt.jar中都是JDK最核心的类库
如果“启动类加载器”,加载不到的时候
会通过“扩展类加载器”(位于jdk配置文件jre/lib/ext下)
如果以上两种都没有,就通过“应用类加载器”,classpath中的类
也就是如下图
Java中为了保证类加载的安全,还使用了双亲委派机制。
优先从启动类加载器中加载,这个称为“父",
启动类加载器加载不到的情况下,会从扩展类加载器中加载,这个称为"母“。双亲委派