String与StringBuilder在不同数据下性能的差别
在Java程序中,字符串的拼接是很常见的操作,当拼接数据很少的时候,字符串之间的"+"就可以达到目的,
但是当我们的拼接数据变大或者不可预知时,那么字符串的++就会成为服务性能的瓶颈;
这个时候我们就开始考虑怎样能提高这种情况下的性能,于是StringBuilder出现了。
StringBuilder是用char[]实现的,对于字符串的拼接不用频繁的创建对象;
当拼接字符串在100时:
String+=String与StringBuilder.append()时间在1ms以下,性能差异基本可以忽略不记;
当拼接数据在1000时:
String+=String需要5-7ms,而StringBuilder.append()时间还是在1ms以下,差距比较明显;
当拼接数据在10000时:
String+=String需要220ms左右,而StringBuilder.append()时间在1-2ms,差距非常明显;
所以,StringBuilder在拼接数据方面确实是会起到提高性能的目的,在数据在达到10条,就建议使用StringBuilder,
不仅性能方面能得到提升,而且对于内存的使用也会减少。
StringBuffer是StringBuilder的多线程模式对象,所有的append方法用synchronized修饰。

浙公网安备 33010602011771号