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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘忠德 黑马帝   /  2012-1-1 16:03  /  1924 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘忠德 于 2012-1-1 18:30 编辑

String s1 = "spring";
String s2 = s1 + "summer ";
s1.concat("fall ");
s2.concat(s1);
s1 += "winter";
System.out.println(s1 + " " + s2);

上述代码输出是? 总共有多少个String对象?

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

6 个回复

倒序浏览
输出结果是springwinter springsummer
concat()方法使用后会返回一个新的字符串 但不改变原有的 s1.concat("fall ");这句执行后 s1是不变的 s2同理
  明白?

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 闫江龙 于 2012-1-1 17:14 编辑

补充一下 用“+=”的话会改变原有字符串+完后 =赋值了  concat方法是重载了“+”
回复 使用道具 举报
输出结果:springwinter springsummer
concat()方法使用后会返回一个新的字符串,但不改变原来的字符串,

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
将指定字符串连接到此字符串的结尾。
回复 使用道具 举报
String s1 = "spring";
                String s2 = s1 + "summer ";//到这里有三个对象了:"spring" "summer" "springsummer"
                System.out.println(s1==s1.concat("fall "));//false由此可见concat方法返回新的对象,到这有五个对象了:"fall " "springfall "
                s2.concat(s1);;//concat对原字符串并不修改,那这里到六个了:"springsummer spring"
                s1 += "winter";//算上这里是八个了:"winter" "springwinter"
                System.out.println(s1 + " " + s2);//打印springwinter springsummer

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
哦,明白了,谢谢大家的回复~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马