【JVM】盘一盘 JVM 的类加载机制

我们编写的代码存储在java文件中,java源代码通过编译生成Java虚拟机可识别的字节码,存储在Class文件中。运行java程序时需要将Class文件中的信息加载到Java虚拟机中,而这个过程就是类加载的过程。
JVM类加载示例

如上图所示,假设写一个类A存储为A.java,通过javac A.java编译生成A.class,A.class中存储了各种描述A类的信息。

然后运行程序,执行java A.class,这时java虚拟机会先将A.class中信息转换成Java虚拟机所需的存储格式,然后存放在方法区中。

之后,Java虚拟机会再创建一个java.lang.Class对象实例,这个实例将作为访问方法区中A类信息的入口。使用A中方法时,要先创建一个实例new A(),Java虚拟机基于类的描述信息在Java堆中创建一个A的实例。

那何时会触发类的加载呢?

Java虚拟机规范中并未明确指出,但对类的初始化时机做了明确说明。

我们先了解一下类的加载流程:

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值