A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马伍仪华 中级黑马   /  2012-3-5 15:04  /  2289 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

.


StringBuffer 打印问题






Java代码  
1.public class Test {  
2.      
3.    public static void main(String[] args){  
4.         
5.         
6.    StringBuffer a = new StringBuffer("adc");  
7.    StringBuffer b = new StringBuffer("efg");  
8.      
9.    Test test = new Test();  
10.    test.change(a, b);  
11.    System.out.println(a);  
12.    System.out.println(b);  
13.      
14.      
15.    }  
16.      
17.      
18.    public void change(StringBuffer a ,StringBuffer b){  
19.         
20.         
21.        a.append(b);  
22.        b = a;  
23.         
24.    }  
25.  
26.}  





Java代码  
1.System.out.println(a);  
2.System.out.println(b);  

上面的输出结果为什么是:abcefg和efg 而不是 abcefg 和 abcefg?

1 个回复

倒序浏览
a.append(b);     将指定的字符串追加到此字符序列。所以a的字符串 就是abcefg

b的值 未改变,因为值传递的特点是 单向的,对形参的改变不影响实参的数据的改变。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马