类的初始化顺序

最开始我想的答案是2008-1930=78
但测试后输出竟是-1930
最后问了N个朋友,得出了N个不同的结果
所以也不知道哪些朋友说的对,自己也想了很长时间,找了N多资料,结果自己也做了个总结
希望各位朋友指正(不要BS就好 ^_^)

1.首先初始化成员变量,即使int size = 6,那么也先是size = 0 然后才赋值为6
2.执行方法,因为类里第一行就调用构造方法,所以这个时候THIS_YEAR还是为0
3.输出结果的时候,自然为-1930



import java.util.Calendar;
public class Test{
public static final Test INSTANCE = new Test();
private int size = 6;
private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR);
private Test(){
size = THIS_YEAR - 1930;
}
public int getSize(){
return size;
}

public static void main(String[] args){
System.out.println(INSTANCE.getSize());
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值