`

静态块与构造

 
阅读更多

下面程序答案

public class B

{

    public static B t1 = new B();

    public static B t2 = new B();

    static

    {

        System.out.println("构造块");

    }

    {

        System.out.println("静态块");

    }

    public static void main(String[] args)

    {

        B t = new B();

    }

}

 

说实话:我开始以为是:静态块 构造块 构造块 构造块

正确答案是 构造块 构造块 静态块  构造块

 

答案分析

如果没有 B t=new B()

类会有一个初使化顺序,类自身初使化顺序是定义顺序,从上至下

初使化程序: t1 = new B(); ----> t2 = new B();--->静态块

后面多一个 B t=new B() 最后构造 

 

类的加载过程:

 

 

  

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics