public class StaticVar {
private static StaticVar sv = new StaticVar();
public static int i;
public static int j = 0;
private StaticVar() {
i ++;
j ++;
}
public static StaticVar getInstance(){
return sv;
}
public static void main(String[] args) {
//StaticVar sv = StaticVar.getInstance();
System.out.println("i = " + i);
System.out.println("j = " + j);
}
}
使用javap -v 反编译后关于静态区的内容
static {};
Code:
Stack=2, Locals=0, Args_size=0
0: new #14; //class StaticVar
3: dup
4: invokespecial #15; //Method "<init>":()V
7: putstatic #4; //Field sv:LStaticVar;
10: iconst_0
11: putstatic #3; //Field j:I
14: return
LineNumberTable:
line 2: 0
line 4: 10