我有以下一段取自 Sun Certified Java Programmer 模拟考试的代码:
public class Static
{ 
      static 
      { 
            int x = 5; 
      }
      static int x,y; 
      public static void main(String args[]) 
      { 
            x--; myMethod(); 
            System.out.println(x + y + ++x); 
      }
      public static void myMethod() 
      { 
             y = x++ + ++x; 
      }
}
测试要求您提供此行的结果:
System.out.println(x + y + ++x);
答案是 3,但我不完全理解为什么是 3。如果我完全忽略,我可以得出那个答案:
      static 
      { 
            int x = 5; 
      }
我的问题是,上面的代码片段是什么意思?为什么它不改变变量'x'的值?