对于以下代码:
class A
{
public static int X;
static { X = B.Y + 1;}
}
public class B
{
public static int Y = A.X + 1;
static {}
public static void main(String[] args) {
System.out.println("X = "+A.X+", Y = "+B.Y);
}
}
Run Code Online (Sandbox Code Playgroud)
输出为:X = 1,Y = 2
为什么?如何???
-Ivar
PS:来自JavaCamp.org的代码片段