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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值