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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冰枫 中级黑马   /  2014-4-16 10:26  /  924 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冰枫 于 2014-4-17 11:53 编辑

String  s  =  "a" + "b" + "c";

String  a  =  "a";  
String  b  =  "b";  
String  c  =  "c";  
String  s  =   a  +  b  +  c;
//最终结果等于:

StringBuffer temp = new StringBuffer();     
temp.append(a).append(b).append(c);     
String s = temp.toString();
我的问题:
1.看到也说使用StringBuilder,记得两者的区别在于StringBuilder用于单线程,效率更高。究竟是使用的哪一个?
2.s的相加在编译期就完成了,他的实现是怎么完成了?

1 个回复

倒序浏览
1  从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该Buffer相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
2  a,b,c 地址一样。要和new 分开。new 的String 地址不一样。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马