关于java的static的疑问

来源:互联网 发布:手机酷狗4g连不上网络 编辑:程序博客网 时间:2024/05/01 08:29

如下代码:

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{}块中的代码。


但是结果是:

非静态
构造方法
静态
非静态
构造方法


对于这样的结果不是很理解???

如大神些看了还望能解释下。

0 0
原创粉丝点击