java之StringBuffer常見(jiàn)使用方法解析
StringBuffer
當(dāng)對(duì)字符串進(jìn)行修改的時(shí)候,需要使用 StringBuffer 和 StringBuilder 類(lèi)。
和 String 類(lèi)不同的是,StringBuffer 和 StringBuilder 類(lèi)的對(duì)象能夠被多次的修改,并且不產(chǎn)生新的未使用對(duì)象。
StringBuilder 類(lèi)在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線(xiàn)程安全的(不能同步訪(fǎng)問(wèn))。
由于 StringBuilder 相較于 StringBuffer 有速度優(yōu)勢(shì),所以多數(shù)情況下建議使用 StringBuilder 類(lèi)。然而在應(yīng)用程序要求線(xiàn)程安全的情況下,則必須使用 StringBuffer 類(lèi)
字符串 的內(nèi)容一旦創(chuàng)建,則不允許改變,如果一旦改變,則會(huì)創(chuàng)建一個(gè)新的字符串對(duì)象。
字符串的內(nèi)容一般不會(huì)隨意的修改,因?yàn)槊啃薷囊淮味紩?huì)創(chuàng)建一個(gè)新的字符串對(duì)象。
如果需要修改字符串的內(nèi)容:建議使用字符串緩沖區(qū)類(lèi)。
StringBuffer(字符串緩沖區(qū)類(lèi)): 存儲(chǔ)字符的集合容器。
筆試題: 使用Stringbuffer無(wú)參的構(gòu)造方法默認(rèn)的初始化容量是多少? 當(dāng)容量不夠用時(shí)會(huì)自動(dòng)增長(zhǎng)多少?
StringBuffer的底層是維護(hù)了一個(gè)字符數(shù)組,存儲(chǔ)字符的時(shí)候?qū)嶋H上是往該字符數(shù)組中存儲(chǔ) 的,
而字符數(shù)組的初始化容量是16, 當(dāng)容量不夠使用時(shí),自動(dòng)增長(zhǎng)1倍。
StringBuffer常用的方法:
增
StringBuffer(“jack”)
在創(chuàng)建對(duì)象的時(shí)候賦值
append()
在緩沖區(qū)的尾部添加新的文本對(duì)象
insert()
在指定的下標(biāo)位置添加新的文本對(duì)象
刪
delete(int start, int end)
deleteCharAt(int index)
查
toString()
返回這個(gè)容器的字符串
indexOf(String str)
返回第一次出現(xiàn)的指定子字符串在該字符串中的索引。
substring(int start)
從開(kāi)始的位置開(kāi)始截取字符串
改
replace(int start int endString str)
使用給定 String 中的字符替換此序列的子字符串中的字符。該子字符串從指定的 start 處開(kāi)始,一直到索引 end - 1 處的字符
setCharAt(int index char ch)
指定索引位置替換一個(gè)字符
什么時(shí)候才使用字符串緩沖區(qū)類(lèi)?
如果一個(gè)字符串的內(nèi)容需要頻繁修改的時(shí)候,這時(shí)候我們則需要使用字符串緩沖區(qū)類(lèi)。
總結(jié)
以上就是本文關(guān)于java之StringBuffer常見(jiàn)使用方法解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。
- Java利用StringBuffer替換特殊字符的方法實(shí)現(xiàn)
- 詳解java中String、StringBuilder、StringBuffer的區(qū)別
- java中stringbuffer線(xiàn)程安全分析實(shí)例詳解
- Java常用類(lèi)庫(kù)StringBuffer,Runtime,日期操作類(lèi)等類(lèi)庫(kù)總結(jié)
- java String、StringBuilder和StringBuffer的區(qū)別詳解
- JAVA面試題 從源碼角度分析StringBuffer和StringBuilder的區(qū)別
- Java中字符數(shù)組、String類(lèi)、StringBuffer三者之間相互轉(zhuǎn)換
- JAVA StringBuffer類(lèi)與StringTokenizer類(lèi)代碼解析
- java 中String和StringBuffer與StringBuilder的區(qū)別及使用方法
- Java String 和StringBuffer的詳解及區(qū)別
- Java中StringBuffer和StringBuilder_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- java中 String和StringBuffer的區(qū)別實(shí)例詳解
- JAVA中String類(lèi)與StringBuffer類(lèi)的區(qū)別
- Java基礎(chǔ)之StringBuffer詳解
相關(guān)文章
關(guān)于Java8 parallelStream并發(fā)安全的深入講解
這篇文章主要給大家介紹了關(guān)于Java8 parallelStream并發(fā)安全的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10Spring定時(shí)任務(wù)注解@Scheduled詳解
這篇文章主要介紹了Spring定時(shí)任務(wù)注解@Scheduled詳解,@Scheduled注解是包org.springframework.scheduling.annotation中的一個(gè)注解,主要是用來(lái)開(kāi)啟定時(shí)任務(wù),本文提供了部分實(shí)現(xiàn)代碼與思路,需要的朋友可以參考下2023-09-09Java設(shè)計(jì)模式詳解之門(mén)面模式(外觀(guān)模式)
為子系統(tǒng)中的一組接口提供一個(gè)一致的界面, Facade 模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。本文給大家介紹Java設(shè)計(jì)模式詳解之門(mén)面模式(外觀(guān)模式),感興趣的朋友參考下吧2016-04-04Springboot?中的?Filter?實(shí)現(xiàn)超大響應(yīng)?JSON?數(shù)據(jù)壓縮的方法
這篇文章主要介紹了Springboot?中的?Filter?實(shí)現(xiàn)超大響應(yīng)?JSON?數(shù)據(jù)壓縮,定義GzipFilter對(duì)輸出進(jìn)行攔截,定義 Controller該 Controller 非常簡(jiǎn)單,主要讀取一個(gè)大文本文件,作為輸出的內(nèi)容,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10SpringBoot配置 Druid 三種方式(包括純配置文件配置)
本文給大家分享在項(xiàng)目中用純 YML(application.yml 或者 application.properties)文件、Java 代碼配置 Bean 和注解三種方式配置 Alibaba Druid 用于監(jiān)控或者查看 SQL 狀況的相關(guān)知識(shí),感興趣的朋友一起看看吧2021-10-10Maven?繼承父工程時(shí)的relativePath標(biāo)簽詳細(xì)解析
這篇文章主要介紹了Maven?繼承父工程時(shí)的relativePath標(biāo)簽解析,通過(guò)本文學(xué)習(xí)你需要注意子模塊想要用父模塊pom中的版本,請(qǐng)注意配置relativePath屬性,需要的朋友可以參考下2022-12-12