类加载器 --classLoader
类加载器
类加载的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问
加载器的分类
- 引导类加载器:用C++编写的,是JVM自带的类加载器,负责Java平台核心库,用来装载核心类库。该加载器无法直接获取
- 扩展类加载器:负责jre/lib/ext目录下的jar包或-java.ext.dirs指定目录下的jar包装入工作库
- 系统类加载器:负责java-classpath或-Djava.class.path所指的目录下的类与jar包装入工作,是最常用的加载器
 自定义类是系统类加载器加载
 系统内置类,是根加载器加载
package Base01.reflection.Demo03;
public class Demo01 {
    public static void main(String[] args) throws ClassNotFoundException {
        //获取系统类的加载器
        ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
        System.out.println(systemClassLoader);
        //获取系统类加载器的父类加载器————>扩展加载器
        ClassLoader parent = systemClassLoader.getParent();
        System.out.println(parent);
        //获取扩展加载器的父类加载器————>根加载器
        ClassLoader parent1 = parent.getParent();
        System.out.println(parent1);
        System.out.println("===========================");
        //自定义类是系统类加载器加载
        ClassLoader demo01 = Class.forName("reflection.Demo03.Demo01").getClassLoader();
        System.out.println(demo01);
        System.out.println("===========================");
        //系统内置类,是根加载器加载
        ClassLoader obj = Object.class.getClassLoader();
        System.out.println(obj);
    }
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号