1.什么是类加载
是什么将.class加载到JVM的呢?就是类加载器。
2.类加载器类型
1 Bootstrap ClassLoader(启动类加载器)
加载$JAVA_HOME/jre/lib(底层C语言实现)
2 Extension ClassLoader(扩展类加载器)
加载JAVA_HOME/jre/lib/ext目录中的文件(或由System.getProperty(“java.ext.dirs”)所指定的文件)。 底层是Java实现
3 App ClassLoader (应用类加载器)
他加载我们工程目录classpath下的class及jar包 底层是java实现
3.什么是双亲委派机制
当类加载器需要加载某一个.class字节码文件时,会依次向上查找到最顶层类加载器(启动类加载器),然后在通过递归的方式向下加载class文件,如果已经加载到class文件(通过包名+类名查找是否已经加载了该class文件),子加载器不会加继续加载该class文件。
4.双亲委派的作用
①防止加载同一个.class。
②保证核心.class不被篡改。