标签:文件 字节 自定义 哪些 子类 ClassLoader 器有 加载
什么是类加载器
Java文件的编译和执行
要想理解什么是类加载器首先要了解一个java文件是如何运行起来的
类加载器:用于装载字节码文件
(.class
文件
)
运行时数据区:用于分配存储空间
执行引擎:执行字节码文件或本地方法
垃圾回收器:用于对
JVM
中的垃圾内容进行回收
类加载器
JVM
只会运行二进制文件,而类加载器(
ClassLoader
)的主要作用就是将
字节码 文件加载到
JVM
中
,从而让
Java
程序能够启动起来。现有的类加载器基本上都是 java.lang.ClassLoader的子类该类的只要职责就是用于将指定的类找到或生成对 应的字节码文件,同时类加载器还会负责加载程序所需要的资源
类加载器的类型
启动类加载器
(BootStrap ClassLoader)
:
该类并不继承
ClassLoader
类,其是由
C++
编写实现。用于加载
JAVA_HOME/jre/lib
目录下的类库。
扩展类加载器
(ExtClassLoader)
:
该类是
ClassLoader
的子类,主要加载
JAVA_HOME/jre/lib/ext
目录中的类
库。
应用类加载器
(AppClassLoader)
:
该类是
ClassLoader
的子类,主要用于加载
classPath
下的类,也就是加载开发 者自己编写的Java
类。
自定义类加载器:
开发者自定义类继承
ClassLoader
,实现自定义类加载规则。
双亲委派模型
如果一个类加载器在接到加载类的请求时,它首先不会自己尝试去加载这个类, 而是把这个请求任务委托给父类加载器去完成,依次递归,如果父类加载器可以 完成类加载任务,就返回成功;只有父类加载器无法完成此加载任务时,才由下 一级去加载。
标签:文件,
字节,
自定义,
哪些,
子类,
ClassLoader,
器有,
加载
From: https://blog.csdn.net/a2261370821/article/details/142223339