更新時間:2020-01-08 來源:黑馬程序員 瀏覽量:
由于字符串是常量,因此一旦創建,其內容和長度是不可改變的。如果需要對一個字符串進行修改,則只能創建新的字符串。為了便于對字符串的修改,在JDK中提供了個StringBuffer類(也稱字符串緩沖區)。StringBuffer類和String類最大的區別在于它的內容和長度都是可以改變的。StringBuffer類似一個字符容器,當在其中添加或刪除字符時,并不會產生新的StringBuffer對象。針對添加和刪除字符的操作,StringBuffer類提供了一系列的方法。
StringBuffer類和String類有很多相似之處,初學者在使用時很容易混淆。接下來針對這兩個類進行對比,簡單歸納一下兩者的不同,具體如下:
(1)String類表示的字符串是常量,一旦創建后,內容和長度都是無法改變的。而StringBuffer表示字符容器,其內容和長度都可以隨時修改。在操作字符串時,如果該字符串僅用于表示數據類型,則使用 String類即可,但是如果需要對字符串中的字符進行增刪操作,則使用 StringBuffer類。
(2) String類覆蓋了Object類的equals()方法,而StringBuffer類沒有覆蓋Object類的equals()方法,具體示例如下
String s1=new String("abc");
String s2=new String("abd");
System.out.println(s1.equals(s2)); //打印結果為true
StringBuffer sb1=new StingBuffer("abc");
StringBuffer sb2=new StringBuffer("abc");
System.out.println(sb1.equeals(sb2)); //打印結果為false
(3) String類對象可以用操作符+進行連接,而 String Buffer類對象之間不能,具體例如下:
String s1="a";
String s2="b";
String s3=s1+s2; //合法
System.out.println(s3); //打印輸出ab
StringBuffer sb1=new StringBuffer("a");
StringBuffer sb2=new StringBuffer("b");
StringBuffer sb3=sb1+sb2; //編譯出錯
猜你喜歡: