1)新生成一個,舊的由系統(tǒng)自己主動回收 2)使用delete 3)使用setLength
將三種方法循環(huán)1000萬次,代碼:
1.public class sbbm {
2.
3. static String a;
4. static long time ;
5. public static void main( String[] args ) throws Exception {
6.
7. StringBuilder sb = new StringBuilder();
8. StringBuilder sb3 = new StringBuilder();
9.
10. time = System.currentTimeMillis();
基本上有兩種選擇,setLength(0)用于重置StringBuilder或在每次迭代中創(chuàng)建一個新的。兩者都有優(yōu)點和缺點,具體取決于用法。
如果您事先知道StringBuilder的預(yù)期容量,那么每次創(chuàng)建一個新的容量應(yīng)該與設(shè)置新的長度一樣快。它還將幫助垃圾收集器,因為每個StringBuilder的生存期都相對較短,并且gc為此進(jìn)行了優(yōu)化。
當(dāng)您不知道容量時,重用相同的StringBuilder可能會更快。每次添加時超出容量時,都必須分配一個新的后備陣列,并且必須復(fù)制以前的內(nèi)容。通過重復(fù)使用相同的StringBuilder,它將在某些迭代后達(dá)到所需的容量,此后將不再進(jìn)行任何復(fù)制。
作者:深海001
鏈接:https://juejin.cn/post/6962690734587641886
來源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
關(guān)鍵詞: Java中StringBuilder的清空方法是什么 如何清除或清空StringBuilder javastringbuilder教程 java中清空屏幕內(nèi)容的語句