这里我写了java程序
public class Main {
static int i=2000;
public static void main(String[] args) {
System.out.print("value of j inside main "+j);
}
static {
m1();
System.out.print("value of i inside static block "+i);
}
static void m1() {
System.out.print("inside static method");
System.out.print("value of j inside static block "+j);
}
static int j =3000;
}
在静态块中,i的值打印为2000,但j的值不能在静态块中引用?在 m1() 方法中打印的 j 的值为 0,但是 j 被初始化了,为什么它打印 0?为什么 j 不能在 static 中引用,而在 m1() 中引用,它首先由 static 块调用?在main里面,j的值打印为3000?那么谁能告诉我我在这里理解的问题是什么?