浏览 1598 次
锁定老帖子 主题:面试一道题 关于StringBuffer
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-30
最后修改:2009-03-30
public class Test { public static void main(String[] args) { StringBuffer a = new StringBuffer("one"); StringBuffer b = new StringBuffer("two"); swap(a,b); System.out.println("a is "+a+"\nb is "+b); } static void swap(StringBuffer a,StringBuffer b) { a.append(" more "); b=a; } } 问:打印结果? 正确的打印结果事是: 引用 a is one more
b is two 因为传递给swap方法的两个参数是引用即a,b在内存的地址。 a.append()方法其实是对a地址对应的值进行了改变。 同样b=a,也改变了b的值,但是并没有返回,对于main方法里的b,它并不知道b的值已近改变,所以打印出来的还是b原来的值。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |