String与StringBuilder区别

String是不可变化的字符,StringBuilder是可以变化的字符。String的不可变是由于它的底层是一个private final char[],没有方法可以修改它的值,所以它是不可变化,而StringBuilder底层也是一个char[],修饰符是缺省的,同包类都可以修改它,所以StringBuilder是一个可变的字符。StringBuilder可以通过append,insert来修改char[]的值。append追加一个字符,如果char[]容量不够,先会进行一个初始容量*2+2的扩容,把追加的字符放到char[]的末端,通过
String的getChars(追加的字符数组,srcBegin从哪个下标开始,des添加到哪个数组后面,count加到到目的数组的后边)方法。getChars方法里面其实调用的是System.arrayCopy(value,srcBegin,des,count,value.length-srcBegin);insert(int index,String str)在哪个下标处插入一个str字符。首先也会检查下初始长度够不够,不够就扩容,然后在通过System.arrayCopy(原数组,index,目的数组,index+str.length,count-index向后移动的长度);原数组从index开始复制count-index个长度到目的数组并从index+str下标开始。在调用插入字符的getChars(index,len,des,index)调用此方法来替换掉dec数组中的index到index+len的值为str的值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值