1. 程式人生 > 其它 >String,Stringbuffer,StringBuilder的區別?

String,Stringbuffer,StringBuilder的區別?

Stringbuffer,StringBuilder的由來?

String str = "hello";

     我們可以看到初始String值為”hello“,然後在這個字串後面加上新的字串”world“,這個過程是需要重新開闢記憶體空間的,這是對記憶體空間的極大浪費。隨後引入了StringBuffer和StringBuildr類來對此種變化字串進行處理。

區別:(1)字元修改上的區別

                     Stringbuilder和StringBuffer類似,均可代表可變的字元序列,方法一樣

                     String:不可變字元序列

                     StringBuffer:可變字元序列,效率低,執行緒安全

                     StringBuilder:可變字元序列,效率高,執行緒不安全

                     String使用陷阱:String s = ”a“  

                                               s=s+”b“  //實際上原來的”a“字串物件已經丟棄了,現在

                                                             又產生了一個字串s+”b“,會導致大量副本字串物件存留在記憶體中,降低效率。

           (2)初始化的區別,String可以空賦值,後者不行。