黑马程序员技术交流社区
标题:
!!求助
[打印本页]
作者:
不存在的奇迹
时间:
2015-4-20 21:42
标题:
!!求助
捕获.JPG
(142.6 KB, 下载次数: 21)
下载附件
2015-4-20 21:42 上传
作者:
不存在的奇迹
时间:
2015-4-20 21:44
public class Demo {
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer("hello");
StringBuffer sb2 = new StringBuffer("world");
change(sb1, sb2);
// System.out.println("外面" + sb1 + "---" + sb2);
}
public static void change(StringBuffer sb1, StringBuffer sb2) {
sb1 = sb2;
System.out.println("里面" + sb1 + "---" + sb2);
sb2.append(sb1);
System.out.println("里面" + sb1 + "---" + sb2);
}
}
作者:
不存在的奇迹
时间:
2015-4-20 21:46
为什么 sb1 变成了 worldworld
作者:
百思不得解
时间:
2015-4-20 22:07
注意StringBuffer是引用类型哟
作者:
itheima_llt
时间:
2015-4-20 22:28
永远支持楼主,继续发好贴
作者:
鸡脑壳
时间:
2015-4-20 22:45
change里面第一句是 sb1 = sb2;这里的意思是把sb2的地址值 赋值给 sb1 存储
也就是说这时候 sb1 与 sb2一样都指向了 同一个地方,那么后面
sb2.append(sb1);
这一个语句等于是对两个变量所指的同一个地址的内存进行操作
sb1的内容与sb2内容一致
作者:
itheima_llt
时间:
2015-4-20 22:46
谢谢分享哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2