JVM

1.类加载机制

  • 通过classloader将二进制的文件加载到内存中(加载)
  • 验证class文件是否符合JVM的规则眼球(验证)
  • 初始化静态变量,给静态变量赋JVM的初始值(准备)
<br>

        正式为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配。仅仅是静态变量,实例变量是在对象实例化随对象一起分配在堆中。

        通常情况下,为默认值:public static int value  = 12,此时准备阶段过后初始值为0,而不是12,而将value赋12的指令是在程序被编译后,放在类构造器<clinit>()方法中,这一步在初始化阶段才会被执行。

        为什么是一般,如果加了final属性,则编译会把该字段添加ConstantValue属性,这样在准备阶段就会设置为12。

  • JVM将常量池中的符号引用改为直接引用过程(解析)
  • 对静态变量进行初始化,赋代码程序设定的初始值(初始化),初始化之后便可以对类进行正常使用了
  • 程序正常结束,或者程序出错,或者系统错误,或者执行了System.exit()方法, 程序生命周期就会结束了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值