关于int a=1;int b=a+1 ;a的值改变对b的影响

J2EE 码拜 8年前 (2016-05-05) 1142次浏览
int   a=1;
int  b=a+1;
a=10;
System.out.println(b);答案为2
问下为什么答案是2,b=a+1  a的值发生了改变,按理b的值不是也应该发生改变吗?此种方法试过对象的成员变量,结果是一样的,即String  a=”a”  String b=a+”b”   当String  a=”aa”的时候  String b依然=”ab”  而不是”aab”
求高手解答!
解决方案

5

b=a+1;   这只是把a+1的值算出来给b而已.
String也一样.
不是很理解你的想法. 你可能想到的事情和list比较像 . ArrayList 在反复add同一个对象的时候是指向同样的地址的.
基本类型是没有所谓引用的.(String特殊一些 可以去百度看一下.)

5

傻逼。程序是顺序执行的  后面就算值发生改变  之前的值不会重新改的

5

“值传递”与“地址传递”的问题。
基本类型是值传递
数组、String、对象是地址传递

25

int  a=1;
这一句是分配了一个int内存空间,然后赋值为1
int  b=a+1;
给b分配一个int的内存空间。取a的值(而不是内存地址),在a的值基础上加1,所以以后a的值发生改变,对b没有影响

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于int a=1;int b=a+1 ;a的值改变对b的影响
喜欢 (0)
[1034331897@qq.com]
分享 (0)