zoukankan      html  css  js  c++  java
  • String和StringBuffer

    一、String和StringBuffer添加字符的效率PK

    String s="abc";
    StringBuffer sb=new StringBuffer("abc");
    s+="xyz";
    sb.append("xyz");

      +操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题,可预先分配指定长度的内存块建立一个字符串缓冲区,这样使用StringBuffer类的append方法追加字符 比 String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得多。

    二、+操作符的背后真实的故事

    String str = new String("welcome to ");
    str += "here";

    代码处理实际步骤:

    1. 建立一个StringBuffer,然后调用append()方法。
    2. 最后调用StringBuffer的toSting()方法.
    StringBuffer sb=new StringBuffer(str);
    sb.append("here");
    str=sb.toString();

    这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上远远的低于StringBuffer。

    总结:String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值。如果在程序中需要对字符串进行频繁的修改连接操作的话.使用StringBuffer性能会更高

  • 相关阅读:
    C#几个经常用到的字符串的截取
    写入Log错误日志
    AES 加密与解密
    支付宝小额免密支付和代扣区别:原来如此
    Sql server --触发器
    yum、ip、等命令无法不全子命令解决
    3、VNC
    6、DHCP
    2、OpenSsh
    VIM的使用
  • 原文地址:https://www.cnblogs.com/lyjs/p/4899234.html
Copyright © 2011-2022 走看看