static静态代码块 是随着类的加载而加载是最先执行的。而对象是在类之后建立的。
而你定义的 static int x;静态的成员变量是属于对象的属性,
自然会在静态代码块之后执行。
所以在你的静态代码块中要明确x的类型
public class Static
{
static
{
x = 5;//明确x的类型
//System.out.println(x);//为什么这句不能编译通过
}
static int x;
public static void main(String args[])
{
System.out.println(x);//输出 5
}
}