类装载器Classloader
1.类装载器的工作机制
类装载器就是寻找类的字节码文件并构造出类在JVM内部表示对象的组件。在Java中,类装载器把一个类装入JVM中,需如下步骤:
(1)装载:查找和导入吃Class文件
(2)链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的
1)校验:检查载入Class文件数据的正确性
2)准备:给类的静态变量分配存储空间
3)解析:将符号引用转成直接引用
(3)初始化:对类的静态变量、静态代码执行初始化工作
2.类装载工作由ClassLoader及其子类负责。ClassLoader是一个重要的Java运行时系统组件,它负责在运行时查找和装入Class字节码文件。
3.JVM在运行时会产生3个ClassLoader:
根装载器、ExtClassLoader(扩展类装载器)、AppClassLoader(应用类装载器)。
4.根装载器不是ClassLoader的子类,负责装载JRE的核心类库;
5.ExtClassLoader和AppClassLoader都是ClassLoader的子类,其中ExtClassLoader负责装载JRE扩展目录ext中的JAR包;AppClassLoader负责装载Classpath路径下的类包。
6.这3个类装载器之间存在父子关系,根装载器是ExtClassLoader的父装载器,ExtClassLoader是AppClassLoader的父装载器。在默认情况下,使用AppClassLoader装载应用程序的类。
【类装载器Classloader】7.JVM装载类时时使用“全盘负责委托机制”,“全盘委托”是指当一个ClassLoader装载一个类时,除非显式地使用另一个ClassLoader,该类所依赖及引用的类也由这个ClassLoader载入;“委托机制”是指先委托父装载器寻找目标类,只有在找不到的情况下才从自己的类路径下查找并装载目标类。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 为什么你的路演总会超时()
- 人生感悟记#环境仪器宋庆国成长记#072
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 使用composer自动加载类文件
- 一个健康的APP和健全的人格大体类似
- 视频转换器哪种好用()
- NeuVector 会是下一个爆款云原生安全神器吗()