关注
类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载的过程中遇到了.class文件缺失或存在错误,类加载器必须在程序首次主动使用该类时才报告错误(LinkageError错误)如果这个类一直没有被程序主动使用,那么类加载器就不会报告错误。
JVM将类的加载分为3个步骤:
1、装载(Load)查找并加载类的二进制数据(查找和导入Class文件)
加载阶段是可控性最强的阶段,因为开发人员既可以使用系统提供的类加载器来完成加载,也可以自定义自己的类加载器来完成加载。加载阶段完成后,虚拟机外部的 二进制字节流就按照虚拟机所需的格式存储在方法区之中,而且在Java堆中也创建一个java.lang.Class类的对象,这样便可以通过该对象访问方法区中的这些数据。
2、链接(Link)
1)验证:确保被加载的类的正确性
验证是连接阶段的第一步,这一阶段的目的是为了确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全
2)准备:为类的静态变量分配内存,并将其初始化为默认值
准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些内存都将在方法区中分配。
3)解析:把类中的符号引用转换为直接引用
解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程,解析动作主要针对类或接口、字段、类方法、接口方法、方法类型、方法句柄和调用限定符7类符号引用进行。符号引用就是一组符号来描述目标,可以是任何字面量。直接引用就是直接指向目标的指针、相对偏移量或一个间接定位到目标的句柄。
3、初始化(Initialize)对类的静态变量,静态代码块执行初始化操作
初始化,为类的静态变量赋予正确的初始值,JVM负责对类进行初始化,主要对类变量进行初始化。在Java中对类变量进行初始值设定有两种方式:
①声明类变量是指定初始值。
②使用静态代码块为类变量指定初始值。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
09-30 12:16
门头沟学院 前端工程师 点赞 评论 收藏
分享
09-12 23:09
门头沟学院 嵌入式软件开发 
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 懂车帝二面 2025.10.11 1h32min5134
- 2... 除了卷大厂,还有其他出路吗。。。5049
- 3... 小红书一面面经3606
- 4... 双非秋招timeline供参考(腾讯字节阿里快手美团)3155
- 5... 最近面试回答不出来的题2831
- 6... 牛牛求救🆘,不敢梭哈后端第二技能点怎么搭配2828
- 7... 第一次去北京那么远的地方实习,心里总是不安,大家会有这种感觉吗?2437
- 8... 27届速通第一段前端实习后续--节孝子启动!2126
- 9... 10.12pdd笔试大鸭蛋1983
- 10... 10.12 拼多多技术岗笔试 第二题 求教1779
正在热议
更多
# 找工作中的小确幸 #
3746次浏览 27人参与
# 机械求职避坑tips #
66887次浏览 448人参与
# 深信服秋招来了 #
280212次浏览 2917人参与
# 面包vs爱情,怎么选? #
13341次浏览 146人参与
# 秋招踩过的“雷”,希望你别再踩 #
8291次浏览 56人参与
# 发面经攒人品 #
2308178次浏览 32230人参与
# 爱玛科技集团求职进展汇总 #
28622次浏览 203人参与
# 实习下班不想学习,正常吗? #
1317次浏览 21人参与
# 机械人值得去的小众企业 #
23964次浏览 54人参与
# 贝壳求职进展汇总 #
35443次浏览 196人参与
# 校招谈薪一定要知道的事 #
1407次浏览 26人参与
# 秋招结束之后的日子 #
87292次浏览 985人参与
# 投格力的你,拿到offer了吗? #
118683次浏览 686人参与
# 你觉得什么岗位会被AI替代 #
2602次浏览 50人参与
# 浪潮求职进展汇总 #
17538次浏览 137人参与
# 新凯来求职进展汇总 #
50993次浏览 131人参与
# 职场新人体验 #
86027次浏览 610人参与
# 机械制造面试点评 #
71982次浏览 452人参与
# 招银网络求职进展汇总 #
171145次浏览 996人参与
# 面试被问“你的缺点是什么?”怎么答 #
155664次浏览 2204人参与
# Offer比较,你最看重什么? #
215969次浏览 1391人参与
# 硬件/芯片公司岗位评价 #
8638次浏览 29人参与