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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魏志锋 初级黑马   /  2014-9-10 12:50  /  1208 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class StringBuilderTest {
        public static void main(String[] args) {

                StringBuilder s1 = new StringBuilder("hello");
                StringBuilder s2 = new StringBuilder("java");
               
                show(s1,s2);
               
                System.out.println(s1+"......."+s2);//hellojava.......java
               
        }

        private static void show(StringBuilder s1, StringBuilder s2) {
                char[] chs ={'a','c','d','f'};
                s1.append(s2);
                s1 = s2;
                System.out.println(s1);//java
                System.out.println(s2);//java
                System.out.println(s1+"......."+s2);//java.......java
        }
       
}

9 个回复

倒序浏览
你的问题是什么?
回复 使用道具 举报
fantacyleo 发表于 2014-9-10 12:57
你的问题是什么?

运行结果写在后面,为什么主函数和show方法的结果不一样

点评

稍等,我给你画个图  发表于 2014-9-10 20:49
回复 使用道具 举报
百度了好多关于Sbuilder和Sbuffer,String的特点的内容,还是搞不懂main方法和show方法里的内容为何会不同
回复 使用道具 举报




回复 使用道具 举报 1 0
show 方法里面的只是参数不是StringgBuilder缓冲区好像
回复 使用道具 举报
看到那图是明白了 不过很担心以后不小心  也出现这情况
回复 使用道具 举报
学习了。
回复 使用道具 举报
只要确定 s1 = s2; 这句中的 = 赋值的不是s2的内容,而是s2的地址,就很好理解了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马