![](https://img-blog.csdnimg.cn/20201014122901214.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
String源码学习
String源码学习
计忆芳华
一个2017年入坑的java小白。
个人博客:jiyifh.top。
展开
-
StringBuffer的扩容机制为什么是两倍的原数组长度 + 2
转载[https://www.cnblogs.com/DMingO/p/13407303.html] 扩容的步骤: 新的字符串的长度超过了底层原char数组value的大小,才需要进行扩容 先尝试默认扩容,将新容量变成 (value.length << 1) + 2 ,也就是两倍的原数组长度再加二 若默认扩充后的值还是小于至少容量的值,直接扩充到当前需要的至少容量大小; 经过前两步骤确定的新数组大小,若大于Interger.MAX_VALUE,则报异常,若小于等于0,则新数组大小4改为Inte转载 2020-08-16 17:19:47 · 939 阅读 · 0 评论 -
为了研究 String 和StringBuffer的区别,自己写一个StringBuffer再说
1. String 和StringBuffer性能对比 生成10位长度的随机字符串,然后,先使用String的+,连接10000个随机字符串,计算消耗的时间,然后,再使用StringBuffer连接10000个随机字符串,计算消耗的时间 String使用字符串连接+的方式 StringBuffer的方式sb.append(s) public class TestString { public static void main(String[] args) { int total = 10000;原创 2020-08-01 12:46:20 · 292 阅读 · 0 评论