Java 静态初始化行为
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 被初始化时。请解释原因。