首页 > 代码库 > 深入了解java虚拟机---类加载机制----初始化阶段
深入了解java虚拟机---类加载机制----初始化阶段
准备阶段是给变量赋系统的初始值。而初始化阶段就是给变量赋程序员自己设的值
初始化阶段是<clinit>()方法的执行过程。过程如下
1.编辑器收集所有的赋值动作和静态块合并形成<clinit>方法。收集是按照代码出现的顺序决定的。并且静态初始化块只能访问定义在之前的变量,对于在之后的变量可以赋值,但是不能访问
2.先执行父类的<clinit>方法,再执行本类的<clinit>方法。而且不需要显式调用,虚拟机会保证父类<clinit>方法先执行。虚拟机执行的第一个<clinit>方法是java.lang.object
注:没有赋值操作和静态初始化块的类没有<clinit>方法
除了类,还有接口。接口可以有赋值.操作。但不同的是不需要先执行父接口的<clinit>方法,只有在用到后才执行(有点像懒加载)
深入了解java虚拟机---类加载机制----初始化阶段
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。