文章参考于:https://www.cnblogs.com/Faith-zhang/p/6374834.html
Java拼接字符串,大致有3个CLASS可以用,分别是:String, StringBuffer, StringBulider。其中StringBulider是1.5中来代替StringBuffer的。
利用代码来检测不同方法拼接字符串的耗时,结果如下:
用String+=拼接字符串的时间27468
用String=String+拼接字符串的时间25813
用String.concat拼接字符串的时间12265
用StringBuffer.append拼接字符串的时间14
用StringBuilder.append拼接字符串的时间8
耗时最短的是StringBuilder的append方法。
解析:
1.String本身是final类型,字符串拼接时,会使用StringBuffer并调用append,然后再调用tostring方法。而StringBuffer转换为String时开销相当大,中间不仅创建了StringBuffer,后期还要再转为String
2.做字符串连接是,String类的contact方法要优于+号方法。(String+=)和(String=String+)这两个效率差不多
3.StringBulider的出现就是来替换StringBuffer的,但是不适宜多线程编程。
从这点上来说,StringBulider更适用于单线程,StringBudder更适用于多线程
4.单线程直线,StringBuffer.append和StringBulider.append效率差不多