📕各位读者好, 我是小陈, 这是我的个人主页
📗小陈还在持续努力学习编程, 努力通过博客输出所学知识
📘如果本篇对你有帮助, 烦请点赞关注支持一波, 感激不尽
📙 希望我的专栏能够帮助到你:
JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等
Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等
JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议, Tomcat, Servlet, Linux, JVM等(正在持续更新)
提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之处欢迎批评指点~ 废话不多说,直接上干货!
类加载是指:把 .class 文件加载到内存, 得到类对象的过程
类加载被分为 5 个步骤:
这些常量在.class文件中存在时, 只知道相互之间的相对位置, 并不知道在内存中的实际位置, 这时候的常量就是“符号引用”, 加载到内存中后, 这些常量有了自己的内存地址(相对位置不变), 此时的常量就是直接引用
什么时候进行类加载?
并非是JVM一致性, 就把程序中所有的类都加载, 而是非必要不加载, 类似于懒汉模式, 以下三种情况会触发类加载 :
类加载器(Class Loader)是 Java 虚拟机(JVM)的重要组成部分, 负责将字节码文件加载到内存中并转换为可执行的类
类加载器分为三种 :
其实还有第四种: 自定义类加载器, 此处就不讨论了
双亲委派模型是类加载机制中第一步: 查找 .class 文件的过程
具体来说: 如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到最顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去完成加载

双亲委派模型的优点:
本篇主要介绍了JVM 中的类加载机制, 分为加载, 验证, 准备, 解析, 初始化五步
在第一步 “加载” 中, 涉及到了 “双亲委派模型” , 而这又建立在三层类加载器的基础上
如果本篇对你有帮助,请点赞收藏支持一下,小手一抖就是对作者莫大的鼓励啦😋😋😋~
上山总比下山辛苦
下篇文章见
