回答重点
StringBuilder主要是为了解决String对象的不可变性问题,还有单线程环境下StringBuffer的性能问题。提供了高效动态的字符串拼接和修改操作。大致需要实现append、insert等功能
大致核心实现如下:
- 内部使用字符数组(char[] value)来存储字符序列
- 通过方法如append()、insert()等操作,直接修改内部的字符数组,而不会像String那样创建新的字符串常量池对象
- 每次进行字符串操作时,如果当前容量不足,它会通过扩展数组容量来容纳新的字符,按2倍的容量扩展,以减少扩展次数,提高性能
扩展知识
深入剖析StringBuilder
对于这类题目,因为已经有现有的实现作为参考,所以回答诸如此类的问题,不要急,先回想一下平日用这个StringBuilder都用了哪些方法
可以看我这一篇博客:【Java】StringBuilder类和StringBuffer类的简单教程-优快云博客
- append
- insert
- delete
- replace
- charAt
- ...
大致就这么几个,每必要说太全,这不是小学课文背诵,关键方法提出来就行了
脑子浮现这几个方法后哦,直接按照上述的回答重点说出来即可。
实际上StringBuilder底层使用char数组来存储字符,并且用count来记录存放的字符数。