真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java之String、StringBuffer和StringBuilder的區(qū)別有哪些

這篇文章主要介紹Java之String、StringBuffer和StringBuilder的區(qū)別有哪些,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供舞鋼網(wǎng)站建設(shè)、舞鋼做網(wǎng)站、舞鋼網(wǎng)站設(shè)計、舞鋼網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、舞鋼企業(yè)網(wǎng)站模板建站服務(wù),10年舞鋼做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

String對象一旦創(chuàng)建,其值是不能修改的,如果要修改,會重新開辟內(nèi)存空間來存儲修改之后的對象,即修改了String的引用。

因為 String 的底層是用數(shù)組來存值的,數(shù)組長度不可改變這一特性導(dǎo)致了上述問題。

?如果我們在實際開發(fā)過程中需要對某個字符串進行頻繁的修改,使用 String 就會造成內(nèi)存空間的浪費,應(yīng)該怎樣解決這個問題呢??

答案就是可以使用 StringBuffer 來解決這個問題。

下面我們就來詳細(xì)談?wù)凷tringBuffer:

?StringBuffer 和 String 類似,底層也是用一個數(shù)組來存儲字符串的值,并且數(shù)組的默認(rèn)長度為 16,即一個空的 StringBuffer 對

象,數(shù)組長度為 16。實例化一個 StringBuffer 對象即創(chuàng)建了一個大小為 16 個字符的字符串緩沖區(qū)。

但是當(dāng)我們調(diào)用有參構(gòu)造函數(shù)創(chuàng)建一個 StringBuffer 對象時,數(shù)組長度就不再是 16 了,而是根據(jù)當(dāng)前對象的值來決定數(shù)組的長

度,數(shù)組的長度為“當(dāng)前對象的值的長度+16”。

所以一個 StringBuffer 創(chuàng)建完成之后,有 16 個字符的空間可以對其值進行修改。如果修改的值范圍超出了 16 個字符,會先檢查

StringBuffer 對象的原 char 數(shù)組的容量能不能裝下新的字符串,如果裝不下則會對 char 數(shù)組進行擴容。

那StringBuffer是怎樣進行擴容的呢?

擴容的邏輯就是創(chuàng)建一個新的 char 數(shù)組,將現(xiàn)有容量擴大一倍再加上2,如果還是不夠大則直接等于需要的容量大小。擴容

完成之后,將原數(shù)組的內(nèi)容復(fù)制到新數(shù)組,最后將指針指向新的 char 數(shù)組。

接下來看StringBuffer的兄弟——StringBuilder

StringBuilder 和 StringBuffer 擁有同一個父類 AbstractStringBuilder,同時實現(xiàn)的接口也是完全一樣,都實現(xiàn)了

java.io.Serializable, CharSequence 兩個接口。

那它倆有什么區(qū)別呢?

最大的區(qū)別在于 StringBuffer 對幾乎所有的方法都實現(xiàn)了同步,線程比較安全,在多線程系統(tǒng)中可以保證數(shù)據(jù)同步;

而StringBuilder 沒有實現(xiàn)同步,線程不安全,在多線程系統(tǒng)中不能使用 StringBuilder。

StringBuffer 和StringBuilder 的使用場景:

當(dāng)需要考慮線程安全的場景下使用 StringBuffer,如果不需要考慮線程安全,追求效率的場景下可以使用 StringBuilder。

以上是Java之String、StringBuffer和StringBuilder的區(qū)別有哪些的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前題目:Java之String、StringBuffer和StringBuilder的區(qū)別有哪些
瀏覽地址:http://weahome.cn/article/ipehjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部