面試題StringBuffer與StringBuilder的區別
package com.carter; import java.lang.StringBuilder; public class StringBuilderDemo {
/*StringBuilder 不保證同步,用在字串緩衝區被單執行緒使用時 * 建議優先採用,比StringBuffer快 */ public static void main(String[] args) { /* * 面試題 :StringBuffer與StringBuilder的區別 * * StringBuffer是執行緒安全的,效能低 * StringBuilder是執行緒不安全的,效能高,適合在單執行緒使用,這種情況佔大多數 * 在JDK1.5之後才新增 */ StringBuilder sb=new StringBuilder(); /*字串相加操作 * 1.多個常量相加沒有效能問題,在編譯期就進行優化了 * 2.變數與常量想加,會產生多個垃圾物件 */ String a ="a"+1; String c=null; for(int i=0;i<5;i++){ c+=i;//每次迴圈會產生一個StringBuilder物件實現拼接,效能低 //最好手動建立StringBuilder來實現拼接 } //1.字串相加,在編譯後,會使用StringBuilder來優化程式碼,實現拼接
}
}