在字符串的連接過程中StringBuffer的效率要比String高:
string操作代碼:
String str = new String("welcome to ");
str += "here";
如上代碼實際上是通過建立一個StringBuffer,讓后台調用append(),最后再將StringBuffer toSting();這樣的話String的連接操作就比StringBuffer多出了一些附加操作,當然效率上要打折扣.並且由於String 對象是不可變對象,每次操作Sting 都會重新建立新的對象來保存新的值.這樣原來的對象就沒用了,就要被垃圾回收.這也是要影響性能的。還有一點就是JAVA中雖然有垃圾回收機制,但是不是瞬間回收的,所以也會早上內存資源的浪費。
只有string重載了“+”操作,對這個操作符,專門寫了個方法,api解釋stringbuilder或者stringbuffer。但是stringbuilder不是線程安全的,而stringbuffer是線程安全的,所以在字符串頻繁拼接是建議使用stringbuffer。少量拼接用string即可。