1. 程式人生 > >jdk不同版本對String拼接的優化分析

jdk不同版本對String拼接的優化分析

  1. 對比jdk5-8所有版本下的反編譯位元組碼,發現結果相同,證明字串拼接從jdk5開始就已經完成了優化,並且沒有進行新的優化。
  2. 詳細看反編譯後的位元組碼,8開始進入for迴圈比較階段,11new一個新的StringBuilder,為了優化之後的String+操作。34迴圈結束,重新到5,將會在11重新new一個StringBuilder。
  3. 迴圈外字串拼接可以直接使用String的+操作,沒有必要通過StringBuilder進行append.
  4. 由於迴圈中每次都會回到5,所以會不停的建立StringBuilder物件,除了迴圈體後就成了無效物件,這樣會產生大量的垃圾物件。所以好的做法是在迴圈外宣告StringBuilder物件,在迴圈內進行手動append。不論迴圈多少層都只有一個StringBuilder物件。