您的位置:首页 > 其它

执行构造的顺序

2016-03-25 15:58 190 查看
构造代码块 :给对象进行初始化,对象一建立就运行而且优于构造函数执行。
构造代码块和构造函数的区别 :构造代码块是给所有对象进行统一初始化,而构造函数是给指定的对象进行初始化。
静态代码块 :随着类的加载而执行,只执行一次。
分析下面程序执行的结果:

class Test7 {

static {

System.out.println("aaaaaaaaaaaaaaaaaaa");

}

{

System.out.println("bbbbbbbbbbbbbbbbbbb");

}

Test7(){

System.out.println("构造函数运行");

}

void print() {

System.out.println("ccccccccccccccccccc");

}

static {

System.out.println("eeeeeeeeeeeeeeeeeee");

}

}

复制代码

public class Test9 {

static {

System.out.println("dddddddddddddddddddd");

}

public static void main(String[] args) {

Test7 d = new Test7();

d.print();

new Test7();

}

static {

System.out.println("fffffffffffffffffff");

}

}

复制代码

程序运行的结果为:

dddddddddddddddddddd
fffffffffffffffffff
aaaaaaaaaaaaaaaaaaa
eeeeeeeeeeeeeeeeeee
bbbbbbbbbbbbbbbbbbb
构造函数运行
ccccccccccccccccccc //因为静态代码块随着类的加载而执行且只执行一次
bbbbbbbbbbbbbbbbbbb //这里重新new一个对象时,静态代码块不会执行,而构造代码块和构造函数执行
构造函数运行

结论:优先级顺序为

静态代码块>构造代码块>构造函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: