类加载器
概述
类加载器就是用来加载类的类
是ClassLoader类
JVM类加载器结构
BootStrap
核心类加载器(c++)
加载类路径: %jdk%/jre/lib/rt.jar
ExtClassLoader
扩展类加载器(java)
加载类路径:%jdk%/jre/lib/ext/*.jar
AppClassLoader
应用类加载器(java) 加载类路径:应用类路径
java应用: /bin/*.class *.jar
web应用: /WEB-INF/class/*.class和/WEB-INF/lib/*.jar
类加载的委托机制
1.类A由类加载器1发出加载,类加载器1会逐层向上委托,直接最顶层的类加载器。
然后开始从最顶层类加载器逐层往下加载类A。
如果在当前类加载器的类路径下找不到对应的类A,则继续往下加载,直到发出的类加载器为止。
2.类A由类加载器1发出加载,那么类A里面的任何其他类都是由同一个类加载器发出加载的。
委托机制作用
避免重复加载类(节省内存)
保护核心类(java.*.*)