String StringBuffer StringBuilder

  • String 是一个Immutable(不可变)类,包括类不可继承,类的属性不可更改。作为Java中基础是字符串类,每次字符串的拼接赋值都是新建一个对象进行操作。所以为了提高字符串拼接移除部分的性能,提供了线程安全的StringBuffer和不保证线程安全的StringBuilder。
  • StringBuffer 是一个线程安全的类,具体实现的字符串拼接时通过一个字符串数组进行存储的。性能较String的字符串拼接提高了许多。StringBuffer 通过在方法上添加synchronized 保证线程安全。
  • StringBuilder 非线程安全类,实际上和StringBuffer 都是继承了AbstractStringBuilder,区别在于StringBuilder的方法上没有家同步,所以无法保证线程安全。但同时性能高了很多。
  • 两个字符串操作类的初始化大小都是16,每次扩容都是2的倍数。扩容时通过新建数组copy生成新的数组,消耗比较大。这就要求尽可能在使用时指定合适的初始化大小,避免扩容造成的性能浪费和浪费空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值