文章詳情頁
java - StringBuffer轉成String,可以不同過tostring,而是通過+“”的方式轉換嗎?
瀏覽:83日期:2024-02-14 17:59:23
問題描述
問題解答
回答1: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來取代。
標簽:
java
排行榜
