StringBuffer與String的區別

2021-08-16 11:10:46 字數 1317 閱讀 9396

stringbuffer類與string類一樣

,也用來代表字串,只是由於stringbuffer的內部實現方式和string不同,所以stringbuffer在進行字串處理時,不生成新的物件,在記憶體使用上要優於string類。

在實際使用時,如果經常需要對乙個字串進行修改,例如插入、刪除等操作,使用stringbuffer要更加適合一些。

在stringbuffer類中存在著很多和string類一樣的方法,這些方法在功能上和string類中的功能是完全一樣的,但是有乙個顯著的區別在於,對於stringbuffer物件的每次修改都會改變物件本身。

這點是和stringbuffer類最大的區別。

stringbuffer是執行緒安全的。

1、stringbuffer物件的初始化

stringbuffer s = new stringbuffer();

這樣初始化出的stringbuffer物件時乙個空的物件。

如果需要建立帶有內容的stringbuffer物件,則可以使用:

stringbuffer s = new stringbuffer(「abc」);

這樣初始化的stringbuffer物件的內容就是abc

需要注意的是,stringbuffer和string屬於不同的型別,也不能直接進行強制型別轉換,下面的**都是錯誤的:

stringbuffer s = 「abc」;   

//賦值型別不匹配

stringbuffer s = (stringbuffer)」abc」;  

//不存在繼承關係,無法進行強轉

stringbuffer物件和string物件之間的互轉的**如下:

string s = 「abc」;

stringbuffer sb1 = new stringbuffer(「123」);

stringbuffer sb2 = new stringbuffer(s); 

//string轉換為stringbuffer

string s1 = sb1.tostring();   //stringbuffer轉換為string

2、stringbuffer的常用方法

stringbuffer類中的方法主要偏重於對於字串的變化,例如追加、插入和刪除等,這個也是stringbuffer和string類的主要區別。

該方法的作用是追加內容到當前stringbuffer物件的末尾,類似於字串的連線。呼叫該方法以後,stringbuffer物件的內容也發生改變,例如:

stringbuffer sb = new stringbuffer(「abc」);

則物件sb的值將變成」abctrue」。

String與StringBuffer的區別

string與stringbuffer都可以儲存和操作字串,但是string所儲存的字串是不可以改變的,但是string的引用變數可以指向新的物件。例如 string s1 hello 此時s1指向儲存hello這個物件,當執行s1 s1 word 時s1指向了乙個新的物件,其儲存的內容為hello...

StringBuffer與String的區別與應用

stringbuffer 是使用緩衝區的,本身也是操作字串的,但是與 string 類不同,string 類的內容一旦宣告之後則不可改變,改變的只是其記憶體位址的指向,而 stringbuffer 中的內容是可以改變的。對於 stringbuffer 而言,本身是乙個具體的操作類,所以不能像 str...

String與StringBuffer的比較2

no.比較點 string stringbuffer 12在字串中查詢指定字串的位置 public int indexof string str public int indexof string str,int fromindex public int lastindexof string str...