JAVA-大白话探索JVM-类加载过程(二)
2019-01-23 07:40:41来源:博客园 阅读 ()
首先我们知道JVM是什么以及类加载器的作用
不清楚的可以看看
JAVA-大白话探索JVM-类加载器(一)
现在我们来摸索下类的加载过程
首先,我们将类加载过程分为三步走
- 装载
- 链接
- 初始化
其中 链接 分为三步骤
1.装载
- 通过一个类的全限定名获取其定义的二进制字节流
- 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构
- 在堆中生成一个代表这个类的java.lang.Class对象,作为对方法区中这些数据的访问入口
2.链接
-
验证
-
确保Class文件的字节流信息符合JVM的要求
-
4个阶段校验(文件格式校验、元数据校验、字节码校验、符号引用校验)
-
验证阶段是非常重要的,但不是必须的,它对程序运行期没有影响,如果所引用的类经过反复验证,那么可以考虑采用-Xverifynone参数来关闭大部分的类验证措施,以缩短虚拟机类加载的时间。
-
-
准备
- 为类的静态变量(static)分配内存,并将其初始化为默认值
-
解析
-
把类中的符号引用转换为直接引用
-
符号引用就是一组符号来描述目标,可以是任何字面量。
-
直接引用就是直接指向目标的指针、相对偏移量或一个间接定位到目标的句柄。
-
3.初始化
对类的静态变量,静态代码块执行初始化操作
版权声明:本文为不会代码的小白原创文章,转载需添加小白地址 :https://www.ccode.live/bertonlee/list/7
欢迎关注
欢迎关注公众号“码上开发”,每天分享最新技术资讯
原文链接:https://www.cnblogs.com/xswz/p/10305950.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java--反射(框架设计的灵魂)案例 2020-06-11
- Java--注解 2020-06-11
- Java--反射(框架设计的灵魂) 2020-06-11
- Java--Stream流详解 2020-06-10
- 【Java-jxl插件】【Excel文件读写报错】jxl.read.biff.BiffE 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash