请求指点,这段代码中的J变量为什么会先赋值,且多次赋值

img


public class Text {
public static int k = 0;
public static Text t1 = new Text("t1"); public static Text t2 = new Text("t2");
public static int i = print("i");
public static int n = 99;
public int j = print("j");
static {
print("静态块");
}
public Text(String str) {
System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
++i;
++n; }
public static int print(String str) {
System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
++n;
return ++i;
}
public static void main(String args[]) {
new Text("init");
}
}

j先被赋值,赋值多次,怎么看出来的?