如下代码:
public class TestStatic
{
private static TestStatic testStatic = new TestStatic();
{
System.out.println("非静态");
}
static
{
System.out.println("静态");
}
public TestStatic()
{
System.out.println("构造方法");
}
public static void main(String[] args)
{
new TestStatic();
}
}
我理解的运行结果是:
静态
非静态
构造方法
非静态
构造方法
因为类中的static代码在类一加载进来的时候就先执行,对于testStatic静态变量它是new TestStatic类,就应该先执行static{}块中的代码。
但是结果是:
非静态
构造方法
静态
非静态
构造方法
对于这样的结果不是很理解???
如大神些看了还望能解释下。