String和StringBuffer的区别

String和StringBuffer的区别

  1. String和StringBuffer都可以存储和操作字符串,即包含多个字符的字符数据。
  2. String是不可变对象,一旦被创建就不能再修改它的值,对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去,而StringBuffer是一个可变对象,当对他进行修改的时候不会像String那样重建对象;
  3. String是final类,不能被继承;
  4. StringBuffer只能通过构造函数来建立,StringBuffer sb = new StringBuffer(),对象被建立以后,就在内存中分配内存空间,并初始保存一个null,以后就通过append方法进行赋值;
  5. 字符串连接操作中StringBuffer的效率明显比String高;
    使用String做10000次向一字符串后添加字符串,耗时1872ms,内存消耗1301KB;
    使用StringBuffer做10000次向一字符串后添加字符串,耗时15ms,内存消耗162KB;

补充

  1. StringBuffer的方法:
  2. 追加字符串:sb.append(str);
  3. 删除指定位置的字符:sb.deleteCharAt(index);
  4. 删除某段字符串:sb.delete(start,end);
  5. 在指定位置插入:sb.insert(index,str);
  6. 字符串逆转:sb.reverse();
  7. 修改index位置的值:sb.setChatAt(index,char);
  8. 缩小存储空间到字符串长度:sb.trimToSize();
  9. 获取字符串长度:sb.length();
  10. 替换字符串:sb.replace(start,end,str);
  11. 转换为不变字符串:sb.toString();
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值