String VS StringBuffer

原创 2012年03月28日 19:05:58

大家可能都知道了,对于字符串的链接操作StringBuffer的性能要比String好!但是,这是为什么呢?原因如下:

这是StringBuffer中的源代码:

public final class StringBuffer
    extends AbstractStringBuilder
    implements java.io.Serializable, CharSequence
{
跟踪到AbstractStringBuilder后的源码:

abstract class AbstractStringBuilder implements Appendable, CharSequence {
    /**
     * The value is used for character storage.
     */
    char value[];

再看看String中的源代码:

public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];

相信,到这里大家都看出原因了吧!对!就是因为value[]前面多了一个final的修饰,可以想象一下,这意味着什么?

对!意味着:每次对String数组做一次修改,都要重新申请内存(因为被final修饰的变量是不能被修改的),然后再将以前的内容拷贝到新申请的内存中去;但是StringBuffer则不用,他只有当数组不够用的时候,才回去重新申请内存!故:这就是在字符串连接的操作中StringBuffer表现比String出众的根本原因。






一起Talk Android吧(第十八回:Java常用类String VS StringBuffer)

各位看官们,大家好,上一回中咱们说的是Java常用类之StringBuffer的例子,这一回咱们说的例子是Java常用类String VS StringBuffer。闲话休提, 言归正转。让我们一起T...
  • talk_8
  • talk_8
  • 2017年04月24日 21:35
  • 570

Runtime类测试String VS StringBuffer VS StringBuilder 报告

Runtime类简介: 表示运行时操作类,和JVM混的不错,关系过硬。封装了JVM进程,每一个JVM对应着一个Runtime类的实例,且由JVM运行时为其实例化。 你不会在JDK文档中查到他的任何...

string与stringbuffer的区别

  • 2012年08月12日 22:16
  • 18KB
  • 下载

Java笔记第十一课(String类&StringBuffer类)

Java常用类  String类中的其他功能:    替换功能:    public String replace(char oldChar,char newChar):将字符串中某一个字符用新的...

String ,StringBuffer与StringBuilder

  • 2013年10月14日 22:32
  • 31KB
  • 下载

String&amp;Stringbuffer

  • 2013年04月21日 19:18
  • 1KB
  • 下载

java字符串(1):String,StringBuffer,StringBuilder的使用与区别

前言java中最常用的类之一就是String类,java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。更多描述请查阅API文档综述。本文介绍String类的使用和一些注意事项,以及与S...

String &amp; StringBuffer全面总结

  • 2008年01月30日 17:21
  • 184KB
  • 下载

string和StringBuffer的区别

  • 2012年01月05日 09:48
  • 15KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:String VS StringBuffer
举报原因:
原因补充:

(最多只允许输入30个字)