同学,以后遇到这样的问题你可以这样做!
首先你的代码问题:String s=“aaa”;s=s+“bbb”;
我不知道你说的对象是什么意思;如果你说的是值的话那么一定是变了!因为一个是aaa,一个是aaabbb嘛。
如果你说的是地址的话:是这样aaa的地址肯定不会变!,就算你做了s=s+"bbb"' aaa的地址也不会变!因为初始化的地址是不变的!但是在生成这样字符串"aaabbb"时,内存会给他一个新的地址!为什么:你肯定会想直接加在后面不就得了,干嘛还要找个新的地方!很简单:因为以前那个地址所拥有的空间不够大,初始化的空间不会变!它放不下那么多的东西呀!所以我们要找一个更大的空间呀!然后再放aaabbb!最后s指向新的地址!s的地址变了!我想这也是在字符串空间没有减这一运算的原因吧!这是我的理解。
|