我偶然发现了这段似乎违反语法规则的 java 代码:
1. public class Sequence {
2. Sequence() { System.out.print("c "); }
3. { System.out.print("y "); }
4. public static void main(String[] args) {
5. new Sequence().go();
6. }
7. void go() { System.out.print("g "); }
8. static { System.out.print("x "); }
9. }
参考第 3 行,如何打开一个独立的代码块?我测试了它并且它有效。但是,逻辑是相反的:y 将在 c 之前打印。
另外,参考第 8 行,我不确定这个块试图做什么。这似乎是一个类声明。在这种情况下,static关键字后面不应该跟一个类名吗?
有人可以澄清我的疑问吗?谢谢你。