`
shawnccx
  • 浏览: 165456 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Stringbuffer和Stringbuilder拼接字符串

 
阅读更多
错误案例
在循环中大量使用字符串连接,会导致不必要的内存消耗和频繁的垃圾回收。

错误分析
错误的写法:

String str = "";
for (int i = 0; i < 1000; i++) {
    str += " " + i;
}
System.out.println(str);
能用"+"或"+="操作符来拼接大量字符串,在大量字符串拼接操作时,直接相加两个String对象,会为新创建的字符串分配内存,原有的两个String对象也没有释放掉,从而消耗大量的内存资源。

在我们这种高访问量的网站中,一些微小的问题也可能被无限放大,成为严重影响系统性能的瓶颈。

正确用法
StringBuffer buf = new StringBuffer();
for (int i = 0; i < 1000; i++) {
    buf.append(" ").append(i);
}
String str = buf.toString();
System.out.println(str);
分享到:
评论

相关推荐

    StringBuilder拼接字符串

    C# StringBuilder 拼接字符串 字符串转换工具 StringBuilder比StringBuffer运行速度要快,因为StringBuilder是针对于单线程的,所这它是非线程安全的。普通情况下建议使用StringBuilder。

    String,StringBuffer,StringBuilder区别

    String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的

    JavaScript 利用StringBuffer类提升+=拼接字符串效率

    JavaScript 利用StringBuffer类提升+=拼接字符串效率,需要的朋友可以参考下。

    Java—StringBuffer和StringBuilder

    Concept ...StringBuffer是为了解决大量拼接字符串时产生很多中间对象问题而提供的类,他是一个线程安全的可变字符序列,类似于字符串,但是可以修改。 StringBuilder作为JDK 5 发布后对StringBuff

    关于JDK8中的字符串拼接示例详解

    字符串拼接问题应该是每个Java程序员都熟知的事情了,几乎每个Java程序员都读过关于StringBuffer/StringBuilder来拼接字符串。下面这篇文章主要给大家介绍了关于JDK8中的字符串拼接的相关资料,需要的朋友可以参考下...

    for循环中如何正确使用字符串拼接

    那么通过如下代码,看一下在for循环中,不同的字符串拼接方式,到底哪种效率最高?  package com.test.stringjoin; import org.apache.commons.lang3.StringUtils; public class Test { public static void main...

    C#中String StringBuilder StringBuffer类的用法

    String和StringBuilder和StringBuffer,这三个都是值得深究一翻的,可能很多人会说,实在不行的话,都全部用StringBuilder,啥事没有,我不能说你的想法事不正确的,但是我可以给出更好的建议。下面简单介绍一下这三...

    从内存方面解释Java中String与StringBuilder的性能差异

    我们通常会发现使用StringBuffer或StringBuilder创建出来的字符串在拼接时回避String要来得快,尤其是StringBuilder,本文就从内存方面解释Java中String与StringBuilder的性能差异,需要的朋友可以参考下

    java 面对对象编程.pdf.zip

    面向对象基础 面向对象和面向过程的区别 ...字符串拼接用“+” 还是 StringBuilder? String#equals() 和 Object#equals() 有何区别? 字符串常量池的作用了解吗? String s1 = new String("abc");这句话创建了几个

    Java中StringBuilder在高性能用法总结

    关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuilder,不要用+,也不要用StringBuffer,然后性能是好的了,真的吗吗吗吗?  还有些同学,还听过三句似是而非的经验:  1. Java编译优化后+...

    java开发面试题及答案

    基础语法 9 Q1:简单说说Java有哪些数据类型 ...②使用StringBuffer可变字符串,效率较高,是线程安全的(StringBuffer的方法使用了synchronized关键字进行修饰)。③使用StringBuilder可变字符串,效率最

Global site tag (gtag.js) - Google Analytics