问下为什么A的数值变了但B的数值不跟着变?
Integer a = 100;
Integer b = 100;
a = a + 5;
System.out.println(a+"\n"+b);
问下在这个里面为什么a的数值变了但b的数值没有变,既然a,b是指向同一个堆空间,那么理论上我改变了a的指那么堆空间里面a的值也就跟着变化了,那么因为b是指向这个堆空间的,b也应该跟着变化才对啊
27
收起
正在回答
2回答
同学你好,虽然这两个值都指向同一个堆空间,但是因为Integer的底层是被final修饰的,如果改变他的值,就会创建一个新的对象,也就是a指向了新的内存空间;所以a的值改变了,并不会影响b的值
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星