类加载器 --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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~