类加载器:JVM 和核心组件,负责将.class文件动态加载到内存并生成Class对象,采用双亲委派模型确保类加载请求优先委派给父类加载器处理
常见的类加载器
- 启动类加载器(Bootstrap ClassLoader):最顶层,由 C++ 实现,负责加载 JRE 核心类(如
rt.jar中的java.lang、java.util包下的类)。 - 扩展类加载器(Extension ClassLoader):加载 JRE 扩展目录(如
jre/lib/ext)下的类,为核心类提供扩展功能。 - 应用程序类加载器(Application ClassLoader):也叫系统类加载器,加载用户编写的类(如项目
classpath下的.class文件和第三方 jar 包)。
双亲委派
这是类加载器的核心工作原则,简单说就是 “先让父加载器尝试加载,父加载器加载不了再自己加载”,目的是防止类重复加载和保证核心类的安全(如 java.lang.String 不会被自定义类篡改)。