1. 程式人生 > >淺談String與StringBuild與StringBuffer

淺談String與StringBuild與StringBuffer

String

String類以及成員變數被final修飾,也可以看出Sting的值是存在被final修飾的char[]中的,所以每次修改String物件的時候都要建立新的char[],當String的物件需要被大量次數的修改時就需要建立大量的物件,加大了jvm的開銷,對資源造成浪費。這裡需要記住:對String物件的任何處理都不會影響的原來的物件,而是去建立並返回一個新的物件!StringBuilder

與String對立,對物件的一些修改是在原有物件的基礎上去修改,當物件需要有大量的修改時,運用StringBuiler會節省大量的資源和開銷。

StringBuffer與StringBuiler的API大致相同,存在的區別是StringBuffer會在一些方法前面加上同步鎖(synchronized),執行緒安全。總結

當對物件的改變比較少時用String(jvm會對字串相加在編譯時會有優化)當改變多時,用StringBuiler,節省資源。

當改變多,並且需要執行緒安全時用StringBuffer。