package com.unilay;
/**
* @author YangYuzhong
* @since Oct 17, 2015 9:43:48 PM
*/
public class Main {
static int staticVar;// 1.准备阶段-->0
static final int int CONTANT_VALUE = 20;// 2.准备阶段-->20
static {
staticVar = 50;// 4.初始化阶段-->50
}
int var = 3;// 7.赋初值-->0
{
var = 5;// 9.初始化块-->5
}
public Main() {
var = 7;// 10.构造器-->7
}
static class ExtendMain extends Main {
static int secondStaticVar;// 3.准备阶段-->0
int sencondVar = 50; // 8.赋初值-->0 11.初始化快-->50
static {
Main.staticVar = 150;// 5.初始化阶段-->150
}
public ExtendMain() {
var = 17; // 13.构造器-->17
}
{
var = 10; // 12.初始化快-->10
}
}
public static void main(String[] args) {
Main main = new ExtendMain(); // 6.new命令 // 14.new返回
System.out.println(main.var);// 15...
}
}
jvm 类初始化过程代码实战分析
最新推荐文章于 2022-06-01 18:00:29 发布