java - StringBuffer转成String,可以不同过tostring,而是通过+“”的方式转换吗?
PHP中文网
PHP中文网 2017-04-18 10:46:23
0
1
721
PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(1)
Ty80

sb本質是一個StringBuffer對象,直接sb+""就是在調用了sb.toString()去和""進行拼接,另外補充一點,StringBuffer是線程安全的,為什麼要使用StringBuilder或者StringBuffer呢?原因是String類別在Jdk裡邊,是final類型的,但是為什麼final修飾的還可以String str = s + "";這種形式存在呢?因為在jvm裡邊,每次執行+的時候,都會建立一個暫時的String對象,然後你看到的String str = a + b;其實是String str = new String(a) + new String(b);的形式,這樣如果要拼接的字串多了,就會創建出很多String對象,因此,造成gc的開銷增大,所以這種頻繁的操作不直接用字符串拼接,而是用StringBuilder或者StringBuffer來取代。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板