java String、StringBuilder和StringBuffer的區(qū)別詳解
1.共同點(diǎn):
三者都是字符串類。StringBuilder和StringBuffer都是繼承AbstractStringBuilder類,存儲字符串都是使用數(shù)組進(jìn)行存儲的。
2.區(qū)別:
a. String 類存儲字符串使用的數(shù)組被final進(jìn)行修飾了,當(dāng)對String對象進(jìn)行增加修改字符時,都需要重新new一個字符數(shù)組,將原來的值拷貝到新的字符數(shù)組中,所以當(dāng)字符串的值需要經(jīng)常修改的時候就需要考慮用StringBuilder或StringBuffer來進(jìn)行處理了。
public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
private final char value[];
}
b.StringBuffer和StringBuilder也是使用字符數(shù)組來進(jìn)行存儲字符串的,但沒有使用final進(jìn)行修飾;StringBuffer定義的方法都加入了synchronized修飾,也就是說StringBuffer類方法都是線程安全的,而StringBuilder方法沒有被修飾,兩者常用的方法是append()。
3.使用場景:
- 當(dāng)字符串值不會變化時,考慮使用String
- 當(dāng)字符串的值多變的時候,考慮使用StringBuilder或者StringBuffer
- 當(dāng)要求線程安全時候,考慮使用StringBuffer。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解java中String、StringBuilder、StringBuffer的區(qū)別
- Java中關(guān)于String StringBuffer StringBuilder特性深度解析
- java中String、StringBuffer與StringBuilder的區(qū)別
- java中String StringBuffer和StringBuilder的區(qū)別詳解
- Java源碼深度分析String與StringBuffer及StringBuilder詳解
- Java中String和StringBuffer及StringBuilder?有什么區(qū)別
- 詳解Java中String,StringBuffer和StringBuilder的使用
- Java StringBuffer與StringBuilder有什么區(qū)別
- Java中String、StringBuffer和StringBuilder的區(qū)別
- 一文講解Java的String、StringBuffer和StringBuilder的使用與區(qū)別
相關(guān)文章
Plugin ‘org.springframework.boot:spring-boot-maven-plug
這篇文章給大家介紹了Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found的解決方案,親測可用,文中給出了兩種解決方法,需要的朋友可以參考下2024-01-01
java中實(shí)體類實(shí)現(xiàn)時間日期自動轉(zhuǎn)換方式
這篇文章主要介紹了java中實(shí)體類實(shí)現(xiàn)時間日期自動轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
解析探秘fescar分布式事務(wù)實(shí)現(xiàn)原理
這篇文章主要為大家解析探秘fescar分布式事務(wù)的實(shí)現(xiàn)原理,fescar的txc模型實(shí)現(xiàn)非常有研究的價值,所以今天我們來好好翻一翻fescar項(xiàng)目的代碼2022-02-02
dubbo服務(wù)引用之創(chuàng)建Invoker流程詳解
這篇文章主要為大家介紹了dubbo服務(wù)引用二之創(chuàng)建Invoker流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
深入淺析SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用
SPI是一種使軟件框架或庫更加模塊化、可擴(kuò)展和可維護(hù)的有效方法。通過遵循“開閉原則”,?SPI?確保了系統(tǒng)的穩(wěn)定性和靈活性,從而滿足了不斷變化的業(yè)務(wù)需求,這篇文章主要介紹了SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用,需要的朋友可以參考下2023-09-09
MyBatis-Plus如何最優(yōu)雅最簡潔地完成數(shù)據(jù)庫操作
Mybatis-Plus是一個?Mybatis?的增強(qiáng)工具,在?Mybatis?的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生,下面這篇文章主要給大家介紹了關(guān)于MyBatis-Plus如何最優(yōu)雅最簡潔地完成數(shù)據(jù)庫操作的相關(guān)資料,需要的朋友可以參考下2022-03-03
Java如何獲取HttpServletRequest請求參數(shù)
我們常需要接口接收第三方推送的數(shù)據(jù),由于第三方可能不具備開發(fā)能力,我們需要自行解析推送的數(shù)據(jù)格式,通過HttpServletRequest,我們可以解析字符串、JSON、XML以及文件等多種數(shù)據(jù)類型,本文介紹了如何在Java中使用HttpServletRequest獲取請求參數(shù),感興趣的朋友一起看看吧2024-11-11
Spring?Security實(shí)現(xiàn)分布式系統(tǒng)授權(quán)方案詳解
這篇文章主要介紹了Spring?Security實(shí)現(xiàn)分布式系統(tǒng)授權(quán),本節(jié)完成注冊中心的搭建,注冊中心采用Eureka,本文通過示例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02

