java String,StringBuffer,StringBuilder区别

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。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 1.String 字符串常量。 这一段创建了两个对象,分别为abcd的常量和abcdl的常量。第一个常量对象被jv...
    KaelQ阅读 439评论 0 2
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,526评论 0 3
  • 大家好:我叫欧阳金焱,今天我讲一个“知己知彼”的成语故事。 北魏大将军侯渊,率领七百骑兵去攻打有几万兵...
    a3177b5f046a阅读 236评论 0 1
  • 俗话说得好,你不是风儿我也不是沙,再缠绵也到不了天涯,放下那些不能帮助你前行的过去,现实是什么呢?现实就...
    百里长文阅读 698评论 1 4