无图无真相,字符串相加原来是这样做的

面试官问我字符串想加如何和操作?
我:字符串相加有常见的有三种方法:
1、使用String +String
2、使用StringBuffer
3、使用StringBulider
先说第一种,两个字符串用“+”相连,过程是创建新的String对象,将字符串按照顺序复制进来,这种操作时候少量的新增操作,如果相加次数多就会频繁创建数组,效率低下,
第二种第三种,StringBuffer,StringBulider都实现了AbstractStringBuffer接口,相当于字符串的一个工具类,其中维护了一个value 字符数组和count 当前字符数量,value的大小叫做容量,这个容量和String中的容量最大区别是,String容量和字符数相等,AbstractStringBuffer中字符数不大于容量,这样在一些情况下就不用新建数组,是提高效率的关键。使用空间换时间的思想。如图:
在这里插入图片描述

StringBuffer和StringBulider的区别是Stringbulider在方法上加了Synchronized关键字,在多线程情况向满足线程安全。

AbstractStringBuffer相加的过程如下:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值