执行构造的顺序
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一个对象时,静态代码块不会执行,而构造代码块和构造函数执行
构造函数运行
结论:优先级顺序为
静态代码块>构造代码块>构造函数
构造代码块和构造函数的区别 :构造代码块是给所有对象进行统一初始化,而构造函数是给指定的对象进行初始化。
静态代码块 :随着类的加载而执行,只执行一次。
分析下面程序执行的结果:
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一个对象时,静态代码块不会执行,而构造代码块和构造函数执行
构造函数运行
结论:优先级顺序为
静态代码块>构造代码块>构造函数
相关文章推荐
- jQuery监听文件上传实现进度条效果
- 在 JavaScript 中判断用户是用手机还是电脑打开此网页
- 给定一字符串,将每个单词的字符顺序倒置,单词间的顺序不变。例如:输入字符串“I love you”,输出“I evol uoy”。
- RTCP RTP报文结构
- 某A电面的详细解释
- 记php和java中英文字节长度和编码关系
- 1.4.1(extra)
- 1.4.2(extra)
- commonUtils简单总结
- 有逼格地判断数组是否为空
- 联通3G APN设置
- 合并表记录
- 实验一 操作系统模仿cmd
- netty 并发访问测试配置
- 设置网站expires和max-age属性
- VB中输出0点几的时候不显示小数点前面的零
- 数据处理之文件读写
- linuxcnc编译
- 知识梳理-UI-框架类们
- 古典密码(Hill加密算法)