zoukankan      html  css  js  c++  java
  • 串联多个字符串,引发string和stringBuilder的比较

    有两种联接多个字符串的方法:使用 String 类重载的 + 运算符,以及使用 StringBuilder 类。

    例:使用 String 类重载的 + 运算符
    string str1 = "two";
    string str2 = "one" + str1+"three";

    例:使用 StringBuilder
    StringBuilder _str = new StringBuilder();
    string str = "Perfect";
    _str.Append(
    "The");
    _str.Append(str);
    _str.Append(
    "Day");

    String 对象串联操作总是用现有字符串和新数据创建新的对象。StringBuilder 对象维护一个缓冲区,以便容纳新数据的串联。如果有足够的空间,新数据将被追加到缓冲区的末尾;否则,将分配一个新的、更大的缓冲区,原始缓冲区中的数据被复制到新的缓冲区,然后将新数据追加到新的缓冲区。 

    String 或 StringBuilder 对象的串联操作的性能取决于内存分配的发生频率。String 串联操作每次都分配内存,而 StringBuilder 串联操作仅当 StringBuilder 对象缓冲区太小而无法容纳新数据时才分配内存。因此,如果串联固定数量的 String 对象,则 String 类更适合串联操作。这种情况下,编译器甚至会将各个串联操作组合到一个操作中。如果串联任意数量的字符串,则 StringBuilder 对象更适合串联操作;例如,某个循环对用户输入的任意数量的字符串进行串联。

    对于StringBuilder和String的性能以及何时使用,请参考:http://www.codeproject.com/useritems/StringBuilder_vs_String.asp
  • 相关阅读:
    1.tomcat部署项目的几种方式和weblogic部署方式及一点通讯
    C程序第二章节:算法
    java 代码第一天练习
    git生成公钥私钥
    sourceTree操作
    gradle插件安装
    gradle环境搭建
    bootstrap
    20170223
    大企业招聘真的是这样进行的吗?
  • 原文地址:https://www.cnblogs.com/perfect/p/579188.html
Copyright © 2011-2022 走看看