说道java中的类加载器,我们先说说的类的加载,什么是类的加载呢?
类的加载
当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来进行初始化。
加载
将class文件读入内存,并为之创建一个Class对象。
任何类被使用时都会建立一个Class对象
连接
验证 是否有正确的内部结构,并和其他类协调一致
准备 负责为类的静态成员分配内存,并设置默认的初始化值
解析 将类的二进制数据中的符号引用替换为直接引用
初始化
真正开始执行类中定义的Java程序代码。
在类使用前一定是先加载,且加载的是class文件。
类加载器
- 负责将.class文件加载到内存中,并为之生成对应的Class对象。
类加载器的组成及作用
- Bootstrap ClassLoader 根类加载器:负责java核心类的加载,如String,System。在JDK中JRE的lib目录下的rt.jar文件中。
- Extension ClassLoader 扩展类加载器:负责JRE的扩展目录中jar包的加载。在JRE的lib目录下ext目录
- System ClassLoader 系统类加载器:负责在JVM启动时来加载来自java命令的class文件,以及classpath环境变量所指的jar包和类路径