首页 > 编程语言 > 详细

深入了解java虚拟机---类加载机制----初始化阶段

时间:2017-08-08 22:28:16      阅读:161      评论:0      收藏:0      [点我收藏+]

准备阶段是给变量赋系统的初始值。而初始化阶段就是给变量赋程序员自己设的值

初始化阶段是<clinit>()方法的执行过程。过程如下

1.编辑器收集所有的赋值动作和静态块合并形成<clinit>方法。收集是按照代码出现的顺序决定的。并且静态初始化块只能访问定义在之前的变量,对于在之后的变量可以赋值,但是不能访问

2.先执行父类的<clinit>方法,再执行本类的<clinit>方法。而且不需要显式调用,虚拟机会保证父类<clinit>方法先执行。虚拟机执行的第一个<clinit>方法是java.lang.object

注:没有赋值操作和静态初始化块的类没有<clinit>方法

 

 

除了类,还有接口。接口可以有赋值.操作。但不同的是不需要先执行父接口的<clinit>方法,只有在用到后才执行(有点像懒加载)

深入了解java虚拟机---类加载机制----初始化阶段

原文:http://www.cnblogs.com/dailinfu/p/7308950.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!