更新時(shí)間:2020-01-08 來(lái)源:黑馬程序員 瀏覽量:
由于字符串是常量,因此一旦創(chuàng)建,其內(nèi)容和長(zhǎng)度是不可改變的。如果需要對(duì)一個(gè)字符串進(jìn)行修改,則只能創(chuàng)建新的字符串。為了便于對(duì)字符串的修改,在JDK中提供了個(gè)StringBuffer類(lèi)(也稱(chēng)字符串緩沖區(qū))。StringBuffer類(lèi)和String類(lèi)最大的區(qū)別在于它的內(nèi)容和長(zhǎng)度都是可以改變的。StringBuffer類(lèi)似一個(gè)字符容器,當(dāng)在其中添加或刪除字符時(shí),并不會(huì)產(chǎn)生新的StringBuffer對(duì)象。針對(duì)添加和刪除字符的操作,StringBuffer類(lèi)提供了一系列的方法。
StringBuffer類(lèi)和String類(lèi)有很多相似之處,初學(xué)者在使用時(shí)很容易混淆。接下來(lái)針對(duì)這兩個(gè)類(lèi)進(jìn)行對(duì)比,簡(jiǎn)單歸納一下兩者的不同,具體如下:
(1)String類(lèi)表示的字符串是常量,一旦創(chuàng)建后,內(nèi)容和長(zhǎng)度都是無(wú)法改變的。而StringBuffer表示字符容器,其內(nèi)容和長(zhǎng)度都可以隨時(shí)修改。在操作字符串時(shí),如果該字符串僅用于表示數(shù)據(jù)類(lèi)型,則使用 String類(lèi)即可,但是如果需要對(duì)字符串中的字符進(jìn)行增刪操作,則使用 StringBuffer類(lèi)。
(2) String類(lèi)覆蓋了Object類(lèi)的equals()方法,而StringBuffer類(lèi)沒(méi)有覆蓋Object類(lèi)的equals()方法,具體示例如下
String s1=new String("abc");
String s2=new String("abd");
System.out.println(s1.equals(s2)); //打印結(jié)果為true
StringBuffer sb1=new StingBuffer("abc");
StringBuffer sb2=new StringBuffer("abc");
System.out.println(sb1.equeals(sb2)); //打印結(jié)果為false
(3) String類(lèi)對(duì)象可以用操作符+進(jìn)行連接,而 String Buffer類(lèi)對(duì)象之間不能,具體例如下:
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; //編譯出錯(cuò)
猜你喜歡:
Java String類(lèi)的操作有哪些?[java培訓(xùn)]
2020-01-08java中字符串的截取和分隔[java學(xué)習(xí)筆記](méi)
2020-01-08java中字符串的替換和去除空格的方法[java學(xué)習(xí)筆記](méi)
2020-01-08Java字符串如何轉(zhuǎn)換大小寫(xiě)?
2020-01-08java String類(lèi)的常見(jiàn)操作匯總【java學(xué)習(xí)筆記】
2020-01-08Java String類(lèi)如何初始化?[java培訓(xùn)]
2020-01-08