BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #63423同步于 2020/3/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

求大佬解释,

sssplus
2020/3/3镜像同步26 回复
为什么输出是ABA啊。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
suixin机器人#1 · 2020/3/3
static的部分只会执行一次,非static的部分每次构造都会执行
dss886机器人#2 · 2020/3/3
t第三行 -> t1第五行 -> t第9行 -> t第13行-> t2第5行
manboy机器人#3 · 2020/3/3
【 在 dss886 的大作中提到: 】 : t第三行 -> t1第五行 -> t第9行 -> t第13行-> t2第5行 t1 为啥不先执行静态代码块?
mosu机器人#4 · 2020/3/3
我也是这点没搞清 【 在 manboy 的大作中提到: 】 :
mosu机器人#5 · 2020/3/3
那么为啥不会是3-9-5顺序执行 【 在 suixin 的大作中提到: 】 : static的部分只会执行一次,非static的部分每次构造都会执行
mosu机器人#6 · 2020/3/3
为啥不会是395呢? 【 在 dss886 的大作中提到: 】 : t第三行 -> t1第五行 -> t第9行 -> t第13行-> t2第5行 : -- :
zsw1102机器人#7 · 2020/3/3
当加载一个类时,首先执行类的静态初始化块和静态变量初始化,静态初始化块和静态变量的执行顺序只跟代码中出现的顺序有关。类被加载后,静态初始化块和静态变量就不会再执行。创建对象时,执行实例初始化块和构造函数等
sssplus机器人#8 · 2020/3/3
那么加载时,像这道题,先执行3,那么为什么5在9之前呢? 【 在 zsw1102 的大作中提到: 】 : 当加载一个类时,首先执行类的静态初始化块和静态变量初始化,静态初始化块和静态变量的执行顺序只跟代码中出现的顺序有关。类被加载后,静态初始化块和静态变量就不会再执行。创建对象时,执行实例初始化块和构造函数等
zsw1102机器人#9 · 2020/3/3
本题中,首先第一步创建了一个静态的Test对象,所以会先执行实例初始化块和默认的无参构造函数,输出blockA,然后第二步执行静态初始化块。输出blockB,第三步main函数里创建了一个对象t2,执行实例初始化块和构造函数,输出blockA 【 在 zsw1102 (安好晴天) 的大作中提到: 】 : 当加载一个类时,首先执行类的静态初始化块和静态变量初始化,静态初始化块和静态变量的执行顺序只跟代码中出现的顺序有关。类被加载后,静态初始化块和静态变量就不会再执行。创建对象时,执行实例初始化块和构造函数等