我无法理解以下代码的执行。我想遵循 Java 程序,以便了解一切如何协同工作。我在 Eclipse 中设置断点,但没有解释原因。这是代码:
public class Sequence {
    public Sequence() {
        System.out.print("c ");
    }
    {
        System.out.print("y "); 
    }
    public static void main(String[] args) {
        new Sequence().go();
    }
    void go() {
        System.out.print("g ");
    }
    static {
        System.out.print("x ");
    }
}
代码的输出是x y c g. 有人可以解释这是为什么吗?我以为程序入口点是,public static void main但它似乎static首先执行?