当前位置: 代码迷 >> Java相关 >> 问大家一个关于StringBuffer的有关问题
  详细解决方案

问大家一个关于StringBuffer的有关问题

热度:2592   发布时间:2013-02-25 21:44:24.0
问大家一个关于StringBuffer的问题


在swap方法中a.append之后,a="One more" 可是把a的值赋给了b按照常理上来说b的值也应该是One more呀。
可是为什么main方法中打印的是a=One more,b=Two呢?

------解决方案--------------------------------------------------------
你没弄清楚调用swap方法时的内存分配问题。

在调用swap时,在栈中又创建了一个指向new StringBuffer("one")的引用和指向new StringBuffer("two")的引用b,所以在swap方法里面的b=a是另一个引用b 而不是main方法里面的那个b
这样说你明白了吗?
------解决方案--------------------------------------------------------
swap方法参数a和b都只是main方法中a和b的一份引用的拷贝,在swap内部将a赋给b,只不过是将b的引用拷贝赋给了a的引用拷贝,对main方法中的a和b引用没有影响
  相关解决方案