1. 程式人生 > >java中string stringbuffer stringbuilder的本質區別

java中string stringbuffer stringbuilder的本質區別

String與 StringBuffer與 StringBuilder的區別

三者在執行速度方面的比較:StringBuffer > String

首先是string是字串常量,所謂的字串常量就是說不可變得量,但是我們下面的程式碼確實是實現了字串的拼接輸出的str2確實改變了,但是每一次使用string其實就是在堆記憶體中(緩衝區)開闢一塊新的記憶體空間,而以前的開闢的記憶體空間就會被留下來等待GC回收(但是GC不能及時回收)

eg:String str = "hello";
    String str+="word"

而StringBuffer是可變的所謂的可變指的是他可以通過他的append()方法直接進行內容的增加,依然使用的是以前的地址。
對於三者使用的總結: 1.如果要操作少量的資料用 = String
           2: 在不考慮執行緒安全的問題上使用stringbuilder
           3:在考慮執行緒安全的問題上使用stringbuffer