區別如下:
1) String類別的內容一旦宣告後是不可改變的,改變的只是其記憶體的指向,而StringBuffer類別的物件內容是可以改變的。
2) 對於StringBuffer,不能像String那樣直接透過賦值的方式完成物件實例化,必須透過建構方法的方式完成。
3) StringBuffer的在進行字串處理時,不產生新的對象,在記憶體使用上要優於串列類別。所以在實際使用時,如果經常需要對一個字串進行修改,例如插入,刪除等操作,使用StringBuffer要更適合一些。
線上教學影片分享:java影片
範例: String物件不可修改指的是物件本身不可修改,而不是引用不可修改。
String a = “你好”;
這行程式碼的意思是宣告一個String類型的引用變數叫做a,在記憶體中建立一個String物件(值為"你好"),然後把這個物件的引用賦值給變數a。
a = “hello”;
這行程式碼執行的效果是在記憶體中另外建立了一個String物件(值為"hello"),然後把這個新物件的引用賦值給變數a,而不是把原來的記憶體中的那個「你好」的String物件值變成「hello」。
4) StringBuilder,StringBuffer 之間的最大不同在於 StringBuilder 的方法不是線程安全的(不能同步存取)。
5) StringBuilder 相較於 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類,然而在應用程式要求執行緒安全的情況下,則必須使用 StringBuffer 類別。
想了解更多java相關的文章可以存取:java程式設計入門
以上是java中String、StringBuffer、StringBuilder之間的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!