public class Hello {
public static final Hello h = new Hello();
static int i = 5;
int j = i;
private void print() {
System.out.println(i+" , "+j);
}
public static void main(String[] args) {
h.print();
}
}
此代码输出为 5 , 0。如果原因是类中首先静态加载并且 i 已初始化而 j 未初始化。但如果我也从 i 中删除静态
public class Hello {
public static final Hello h = new Hello();
int i = 5;
int j = i;
private void print() {
System.out.println(i+" , "+j);
}
public static void main(String[] args) {
h.print();
}
}
现在为什么输出是 5,5。然后当 i 和 j 被初始化时。请解释原因。