码迷,mamicode.com
首页 > 编程语言 > 详细

java静态代码块真的会优先执行吗

时间:2015-08-09 12:43:51      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:java

public class B
{
    public static B t1 = new B();
    public static B t2 = new B();
    {
        System.out.println("构造块");
    }
    static
    {
        System.out.println("静态块");
    }
    public static void main(String[] args)
    {
        B t = new B();
    }
}



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

静态块:用static申明,JVM加载类时执行,仅执行一次
构造块:类中直接用{}定义,每一次创建对象时执行
执行顺序优先级:静态块>main()>构造块>构造方法
静态块按照申明顺序执行,所以先执行publicstaticB t1 = newB();该语句创建对象,则又会调用构造块,输出构造块
接着执行public static B t1 = new B();输出构造块
再执行
static
{
System.out.println("静态块");
}输出静态块
最后main方法执行,创建对象,输出构造块。

版权声明:本文为博主原创文章,未经博主允许不得转载。

java静态代码块真的会优先执行吗

标签:java

原文地址:http://blog.csdn.net/qingchunweiliang/article/details/47374003

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!