为了账号安全,请及时绑定邮箱和手机立即绑定

在静态初始化块中创建同类的一个对象后,静态初始化块、普通块、构造方法是按什么顺序执行的?

搞的好迷糊~~~

正在回答

4 回答

静态代码块:用于给类初始化,类加载时就会被加载执行,只加载一次。
构造代码块:用于给对象初始化的。只要建立对象该部分就会被执行,且优先于构造函数。
构造函数:  给对应对象初始化的,建立对象时,选择相应的构造函数初始化对象。
创建对象时,三者被加载执行顺序:静态代码块--->构造代码块--->构造函数

1 回复 有任何疑惑可以回复我~

在一个主方法中,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。

0 回复 有任何疑惑可以回复我~

静态初始化块 > 普通块 > 构造方法

主方法所在的类中定义的静态初始化块为第一顺序执行,但是不管多少对象产生,这个静态代码块只执行一次

0 回复 有任何疑惑可以回复我~
#1

慕粉3434242 提问者

static { initialise ccc = new initialise(); System.out.println(ccc.i) ; }在里面加上initialise ccc = new initialise();它们之间的执行顺序会变吧?
2016-06-03 回复 有任何疑惑可以回复我~

构造方法/静态初始化块/普通块

0 回复 有任何疑惑可以回复我~
#1

慕粉3434242 提问者

我测试的在静态块中先建一个对象 然后输出一下,第一个执行的是普通块,第二个是构造,第三个是静态块,第四个是main方法里的
2016-06-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在静态初始化块中创建同类的一个对象后,静态初始化块、普通块、构造方法是按什么顺序执行的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信