`
落地窗
  • 浏览: 442621 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

String和StringBuffer真实体验

 
阅读更多
大家都懂得在java中
String每用一次,比如拼接字符串,虚拟机会重新new一个String,然后将拼得的字符串存放到新的String对象中,而StingBuffer则只会new一个String,也就是在堆空间中开辟一块存储块,这样节省了很多的空间,同时也提高了效率。
以上这些区别,无人不懂,但是好多人没有去体会过,他们之间的区别,导致使用时候不注意,项目中无意间碰到了这个问题,分别使用测试了几次,效果很明显。


for(int i = 0;i < listTowerAll.size();i++){
  Object[] obj = (Object[])listTowerAll.get(i);
  reStr.append(obj[0].toString() + ",");//id
  reStr.append(obj[1].toString() + ",");//名称
  reStr.append("tower.png,");//设备类型图片名称
  reStr.append(",");//天气图片名称
  reStr.append(obj[2].toString() + ",");//经度
  reStr.append(obj[3].toString() + ",");//纬度
  reStr.append(obj[4].toString() + ",");//图层
  reStr.append(obj[5] + ";");//抗风等级

  /*reStr = reStr + obj[0].toString() + ",";
  reStr = reStr + obj[1].toString() + ",";
  reStr = reStr +  "tower.png,";
  reStr = reStr +  ",";
  reStr = reStr + obj[2].toString() + ",";
  reStr = reStr + obj[3].toString() + ",";
  reStr = reStr + obj[4].toString() + ",";
  reStr = reStr + obj[5] + ";";*/
}

以上循环中,list集合如果有几千个元素,那么如果使用String进行拼接(注释部分)大概需要耗时20多秒,如果采用StringBuffer进行拼接只需耗时35毫秒左右,先不用比较昊内存大小,只是效率就差了600多倍,可见StringBuffer是被提倡使用的。

ps:ITeye的发表文章的页面修改了,貌似原来的编辑器出不来了,还是公司网速问题,刚自己手动加了
,貌似也不能用,哪里出问题了,哎。。。。有时候产品的改动不一定适应客户的需求,对于客户习惯已经形成的产品,最好不要改变使用界面。

分享到:
评论

相关推荐

    Java工程师必知必会.docx

    8. String、StringBuffer和StringBuilder类 9. Math类 10. Java 7 的Threadlocalrandom与Random 11. BigDecimal类 12. Date类 13. Calendar类 14. Timezone类 15. 创建正则表达式 16. 使用正则表达式 17. Java国际化...

    java 二级 上机模拟系统

    6. **字符串处理**:掌握String类的特点,了解StringBuilder和StringBuffer的使用,以及常用的字符串操作方法,如substring、indexOf、replace等。 7. **多线程**:理解线程的基本概念,会创建和管理线程,掌握同步...

    J2ME中程序优化的十个小方法

    以下就是十个针对J2ME程序优化的小方法,旨在提高程序运行效率,减少内存占用,提升用户体验。 1. **合理使用数据结构**:J2ME中的数据结构如ArrayList和Vector在内存管理上不如Java SE高效。考虑使用数组代替...

    优就业Android教程-Android应用程序运行的性能设计.doc

    - 避免创建短暂存在的临时对象,例如,改变方法的实现,使其直接操作StringBuffer,而不是创建新的String实例。 - 当处理数据集合时,考虑返回原始数据的子串,而不是创建新的拷贝对象。 - 使用基本数据类型数组...

    JSP彩色验证码的实现

    在Web应用中,为了防止恶意登录或自动化工具的攻击,通常会采用验证码技术来确保用户的真实性。验证码(CAPTCHA)是一种区分用户是计算机还是人类的全自动程序,常用于阻止垃圾邮件机器人进行注册、登录等操作。本文...

Global site tag (gtag.js) - Google Analytics