String與StringBuffer的區別

這個問題確實在很多面試都碰到過,一般也就是說string是可變的,stringbuffer是不可變的。而且stringbuffer比string的執行效率更高,但是一旦被問到爲什麼執行效率更高呢。。。。我就悲劇了 :cry: 。。。這是一位仁兄的解釋:[quote]
3:String 與StringBuffer的區別

String:在String類中沒有用來改變已有字符串中的某個字符的方法,由於不能改變一個java字符串中的某個單獨

字符,所以在JDK文檔中稱String類的對象是不可改變的。然而,不可改變的字符串具有一個很大的優點:編譯器可

以把字符串設爲共享的。

StringBuffer:StringBuffer類屬於一種輔助類,可預先分配指定長度的內存塊建立一個字符串緩衝區。這樣使用

StringBuffer類的append方法追加字符 比 String使用 + 操作符添加字符 到 一個已經存在的字符串後面有效率得

多。因爲使用 + 操作符每一次將字符添加到一個字符串中去時,字符串對象都需要尋找一個新的內存空間來容納更大

的字符串,這無凝是一個非常消耗時間的操作。添加多個字符也就意味着要一次又一次的對字符串重新分配內存。使

用StringBuffer類就避免了這個問題.

[/quote]
覺得挺有道理的。
發佈了41 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章