我有一段代码,这段代码来自于Sun认证Java程序员模拟考试:
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'的值?