美文网首页
java String,StringBuffer,StringB

java String,StringBuffer,StringB

作者: NullUser | 来源:发表于2017-05-06 10:50 被阅读0次

    String

    String 值不可变,每次对String操作会生成新的String对象,浪费内存空间。

    StringBuffer

    StringBuffer在对对象进行字符操作时,直接在原有对象上进行修改,不会生成新的对象,可提高效率,节约内存空间。
    StringBuffer相关常用方法小结:
    1.append()
    在字符串末尾追加内容

    StringBuffer sb=new StringBuffer("Hello");
    System.out.println(sb);
    sb.append(" world!");
    System.out.println(sb);
    

    结果显示:
    Hello
    Hello world!
    2.deleteCharAt()
    删除指定位置的字符

    StringBuffer sb=new StringBuffer("abcdef");
    System.out.println(sb);
    sb.deleteCharAt(2);      //2为字符下标
    System.out.println(sb);
    

    结果显示:
    abcdef
    abdef
    3.delete()
    此方法一次性删除多个字符

    StringBuffer sb=new StringBuffer("abcdef");
    System.out.println(sb);
    sb.delete(2,5);      //2为起始位置,5为终止位置
    System.out.println(sb);
    

    结果显示:
    abcdef
    abf
    **4.insert() **
    在指定位置插入字符串

    StringBuffer sb=new StringBuffer("abcdef");
    System.out.println(sb);
    sb.insert(1,"123");       //在1位置开始插入
    System.out.println(sb);
    

    结果显示:
    abcdef
    a123bcdef
    5.setCharAt() 方法
    修改指定位置的字符

    StringBuffer sb=new StringBuffer("abcdef");
    System.out.println(sb);
    sb.setCharAt(1,'5');   //将位置1的字符b替换为5
    System.out.println(sb);
    

    结果显示:
    abcdef
    a5cdef

    StringBuilder

    StringBuilder类和StringBuffer类功能基本相似,方法也差不多,主要区别在于StringBuffer类的方法是多线程安全的,而StringBuilder不是线程安全的,相比而言,StringBuilder类会略微快一点。
    StringBuffer:线程安全
    StringBuilder:线程不安全

    使用环境

    • 操作少量的数据使用 String;
    • 单线程操作大量数据使用 StringBuilder;
    • 多线程操作大量数据使用 StringBuffer。

    相关文章

      网友评论

          本文标题:java String,StringBuffer,StringB

          本文链接:https://www.haomeiwen.com/subject/seyetxtx.html