【发布时间】:2020-08-29 20:54:35
【问题描述】:
我在静态块之后声明了一个静态变量。当我调用一个方法打印它的值时,结果为0。我反编译了.class文件,发现静态块的结构发生了变化。谁能解释一下为什么?
class Testing {
static {
callMe();
System.out.println("Static finished");
}
static void callMe() {
System.out.println(x);
}
static int x = 10;
public static void main(String[] args) {
System.out.println("Complete");
}}
反编译代码:
class Testing {
static int x;
Testing() {
}
static void callMe() {
System.out.println(x);
}
public static void main(String[] args) {
System.out.println("Complete");
}
static {
callMe();
System.out.println("Static finished");
x = 10;
}}
【问题讨论】:
标签: java static jvm static-methods static-block