请问这段Java代码为啥会是这样的结果
System.out.println( new WithFinalFields() );这是第一行,新建了一个WithFinalFields,我们把它简单记为Aclass WithFinalFields { static final SelfCounter staticFinalObject = new SelfCounter(); final SelfCounter finalObject = new SelfCounter();staticFinalObject是静态的,也就是说无论WithFinalFields有多少个实例,WithFinalFields.staticFinalObject只有这一个,所以它一直是0。finalObject是A的一个域,它在staticFinalObject之后执行,所以它是1。System.out.println( new WithFinalFields() );这是第二行,又新建了一个WithFinalFields,我们把它记为BstaticFinalObject就是刚才生成的那个,是0B的finalObject是刚刚生成的,所以是2所以最后的结果是0 10 2只要简单想象static成员是属于类的,而普通成员是属于对象的就可以理解了。
推荐阅读
- 银行高管的薪酬结构图表最新的,请问在哪里可以收集
- 在上海陆家嘴附近工作,请问去哪边租房会比较好
- 坐标合肥,请问在哪里能捕捉到程序员这种生物他们大都出现在哪里呢
- 孕妇到了预产期,小孩还没有入盆,请问是该等下去还是直接剖腹产
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 想做手机网游代充,请问要去哪里找货源
- 请问有哪些机器人大赛是比较权威的
- 请问国内最好的数据恢复公司是哪个朋友结婚视频不小心被误删,急求帮忙
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 请问杨毅微博中的这两人是谁
