全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)新聞動(dòng)態(tài)正文

Java String類(lèi)和StringBuffer類(lèi)有什么區(qū)別?

更新時(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)提供了一系列的方法。

1578474077903_String和StringBuffer的區(qū)別.jpg


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ò)


1577349771854_學(xué)IT就到黑馬程序員.gif


猜你喜歡:

Java String類(lèi)的操作有哪些?
黑馬程序員java基礎(chǔ)教程下載

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!