String 和StringBuffer的區別

String 和StringBuffer的區別?

1.String類的內容一旦聲明之後是不可改變的,改變的只是其內存的指向,而StringBuffer的對象內容是可以改變的。String對象不可修改指的是對象本身不可修改,而不是引用不可修改。

舉個栗子:

假如有 String a="你好"; 意思是聲明一個String類型的引用變量a,在內存中創建一個String對象(值爲"你好"),然後把這個對象的引用賦值給變量a。

a = "hello"; 這行代碼執行的效果是在內存中另外創建了一個String對象(值爲"hello"),然後把這個新對象的引用賦值給變量a,而不是把原來的內存中的那個“你好”的String對象值變爲“hello”。

2.對於StringBuffer,不能像String那樣直接通過賦值的方式完成對象實例化,必須通過構造方法的方式完成。如:

StringBuffer sb=new StringBuffer();

3.StringBuffer類在進行字符串處理時,不生成新的對象,在內存使用上要優於String類。所以在實際使用時,如果經常需要對一個字符串進行修改,例如插入,刪除等操作,使用StringBuffer要更加適合一些。

 

發佈了135 篇原創文章 · 獲贊 76 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章