A a=new A(),final A a2=a,那如果a有赋值一次new一次,a2会变吗?
答案:1 悬赏:0 手机版
解决时间 2021-11-09 01:56
- 提问者网友:酱爆肉
- 2021-11-08 09:04
A a=new A(),final A a2=a,那如果a有赋值一次new一次,a2会变吗?
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-11-08 10:22
A a = new A(); //把一个叫a的牌子贴在一个A类型的桶上
final A a2 = a; //找到贴了a牌子的那个桶,把另一个牌子a2也贴在上面,而且a2不可以撕下来
A a = new A(); //把牌子a从原来的桶撕下来,贴在另外一个A类型的新桶上
请问,现在牌子a2贴在哪里?追问哦,对,我想错了。但是就没有一种情况能威胁到final的不可变性吗追答可以通过反射修改final域的指向,但这样做会破坏代码安全性。
final A a2 = a; //找到贴了a牌子的那个桶,把另一个牌子a2也贴在上面,而且a2不可以撕下来
A a = new A(); //把牌子a从原来的桶撕下来,贴在另外一个A类型的新桶上
请问,现在牌子a2贴在哪里?追问哦,对,我想错了。但是就没有一种情况能威胁到final的不可变性吗追答可以通过反射修改final域的指向,但这样做会破坏代码安全性。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯