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性能会更高

  • 相关阅读:
    蘑菇街teamtalk简介
    greenDAO简介
    Android 编译错误
    Android 中内容提供者的使用
    Android中使用http协议访问网络
    在Windows环境下设置terminal下调试adb
    Android中SQLite的使用
    sharedPreferences存储数据
    android中广播的使用
    fragment的使用
  • 原文地址:https://www.cnblogs.com/lyjs/p/4899234.html
Copyright © 2011-2022 走看看