2 qq 32194415 qq_32194415 于 2017.04.20 21:01 提问

Java中的初始化块有什么作用啊?

书上说,Java中的初始化块总是优先于构造器执行,可是他们两个都是在进行变量的初始化,为什么初始化了一次,还要调用构造器初始化呢?这我就有点不理解了,他们两个到底有什么区别啊?创建对象的时候他们俩到底都干了些什么啊?求好人指点!!!

14个回答

baluzju
baluzju   2017.04.20 21:16

图片说明

caozhy
caozhy 这个答案才是正解。初始化块用于编写无法写构造函数的匿名内部类的初始化代码。其实初始化块是语法糖,它就是构造函数。匿名类因为没有名字,Java规定构造函数需要和类同名,所以匿名类写不出构造函数。
2 个月之前 回复
weixin_38388710
weixin_38388710   2017.04.20 22:08

调用方法吧,不记得了

sinat_31633039
sinat_31633039   2017.04.21 00:08

因为程序的执行顺序是静态变量、静态代码块、静态方法、普通变量、构造方法、普通方法。main函数是程序的入口规定是静态的所以在main函数里面必须是静态方法,而不能使用普通方法,因为在执行main函数的时候这个方法还没有被加载

qq_38141538
qq_38141538   2017.04.21 08:29

当你需要在类加载之前先定义属性或方法时,他就有用了,比如,jdbcUtils

aslgm_1
aslgm_1   2017.04.21 17:13

初始化代码块是在jvm在加载类的时候运行的,简单理解他只执行了一次。但是构造方法不同,每次创建对象你都会调用一次构造方法。

aslgm_1
aslgm_1 我这个指的是静态代码块,不然不会之执行一次
2 个月之前 回复
qq_21112811
qq_21112811   2017.04.22 15:49

如果想深究其中的原因,建议看一下java的类加载器运行机制。

yizhenn
yizhenn   2017.04.22 18:48

静态块属于类,构造函数属于实例子,参见博客类型的生命周期
和博客对象的生命周期

qq_26991807
qq_26991807   2017.04.27 18:42

当创建一个实例的时候执行顺序为静态修饰的变量或者方法或者初始化块》》一般初始化块》》构造函数

ljheee
ljheee   Rxr 2017.04.29 17:43

Java中的初始化,是属于类加载的范畴,是在类加载解析的时候完成的

Google_huchun
Google_huchun   2017.05.05 10:09

Java中的初始化,是属于类加载的范畴,是在类加载解析的时候完成的,

caozhy
caozhy 请管理员注意封杀这个胡乱抄袭的
大约 2 个月之前 回复
共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片