TypechoJoeTheme

IT技术分享

统计

Java之String、StringBuffer、StringBuilder详解

2016-09-16
/
0 评论
/
628 阅读
/
正在检测是否收录...
09/16

区别对比

①、String长度不可变、不可被继承
②、StringBuilder长度可变
③、当进行大量的字符串拼接操作时,StringBuilder的append方法比String的“+”快很多

源码分析

1、StringBuilder

①、StringBuilder继承自AbstractStringBuilder,重载了不同的append()方法。
②、StringBuilder是一个链式编程,即每次函数会返回自己this。
③、数组容量不够时,会调用AbstractStringBuilder的expandCapacity()方法,将数组的容量扩大至原来的2n+2。
④、一共需进行log2N次开辟和释放,并且一共需复制2n个字符。

2、String

每次“+”,要new StringBuilder(),然后new char[str.length()+1],一共2n次开辟和释放,并且一共需复制n*n/2次.

3、StringBuffer

StringBuffer的方法只是比StringBuilder多了同步synchronized关键字,两者功能一样。
朗读
赞 · 0
版权属于:

IT技术分享

本文链接:

https://idunso.com/archives/2389/(转载时请注明本文出处及文章链接)