类加载器 --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);
    }
}
posted @   小幼虫虫  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示