【发布时间】:2019-12-29 07:16:25
【问题描述】:
这里我写了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? 那么谁能告诉我我在这里理解的问题是什么?
【问题讨论】: