String字符串常量
StringBuilder字符串變量<br/>
例如:
執行結果:
false
常量池中會創建“aaa”,"ni";堆內存會創建兩個對象,其中一個沒有變量指向,變為垃圾對象,等待GC處理。
執行結果:
常量池中會創建:“aaa”,"bb"
StringBuilder是對對象自身進行操作,堆中只會創建一個對象。
所以在字符串內容經常改變時選擇使用StringBuilder。
什么情況下用+運算符進行字符串連接比調用StringBuffer/StringBuilder對象的append方法連接字符串性能更好?
對於字面量字符的連接,String+的性能更好,如 String s5="aaa"+"bb"+"cc";其實就是String s5="aaabbcc";此時常量池中有“aaabbcc”;
而對於大部分情況,StringBuilder性能優於String。