java之StringBuffer常見使用方法解析
StringBuffer
當(dāng)對字符串進(jìn)行修改的時候,需要使用 StringBuffer 和 StringBuilder 類。
和 String 類不同的是,StringBuffer 和 StringBuilder 類的對象能夠被多次的修改,并且不產(chǎn)生新的未使用對象。
StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問)。
由于 StringBuilder 相較于 StringBuffer 有速度優(yōu)勢,所以多數(shù)情況下建議使用 StringBuilder 類。然而在應(yīng)用程序要求線程安全的情況下,則必須使用 StringBuffer 類
字符串 的內(nèi)容一旦創(chuàng)建,則不允許改變,如果一旦改變,則會創(chuàng)建一個新的字符串對象。
字符串的內(nèi)容一般不會隨意的修改,因?yàn)槊啃薷囊淮味紩?chuàng)建一個新的字符串對象。
如果需要修改字符串的內(nèi)容:建議使用字符串緩沖區(qū)類。
StringBuffer(字符串緩沖區(qū)類): 存儲字符的集合容器。
筆試題: 使用Stringbuffer無參的構(gòu)造方法默認(rèn)的初始化容量是多少? 當(dāng)容量不夠用時會自動增長多少?
StringBuffer的底層是維護(hù)了一個字符數(shù)組,存儲字符的時候?qū)嶋H上是往該字符數(shù)組中存儲 的,
而字符數(shù)組的初始化容量是16, 當(dāng)容量不夠使用時,自動增長1倍。
StringBuffer常用的方法:
增
StringBuffer(“jack”) 在創(chuàng)建對象的時候賦值
append() 在緩沖區(qū)的尾部添加新的文本對象
insert() 在指定的下標(biāo)位置添加新的文本對象
刪
delete(int start, int end)
deleteCharAt(int index)
查
toString() 返回這個容器的字符串
indexOf(String str) 返回第一次出現(xiàn)的指定子字符串在該字符串中的索引。
substring(int start) 從開始的位置開始截取字符串
改
replace(int start int endString str) 使用給定 String 中的字符替換此序列的子字符串中的字符。該子字符串從指定的 start 處開始,一直到索引 end - 1 處的字符
setCharAt(int index char ch) 指定索引位置替換一個字符
什么時候才使用字符串緩沖區(qū)類?
如果一個字符串的內(nèi)容需要頻繁修改的時候,這時候我們則需要使用字符串緩沖區(qū)類。
總結(jié)
以上就是本文關(guān)于java之StringBuffer常見使用方法解析的全部內(nèi)容,希望對大家有所幫助。
- Java利用StringBuffer替換特殊字符的方法實(shí)現(xiàn)
- 詳解java中String、StringBuilder、StringBuffer的區(qū)別
- java中stringbuffer線程安全分析實(shí)例詳解
- Java常用類庫StringBuffer,Runtime,日期操作類等類庫總結(jié)
- java String、StringBuilder和StringBuffer的區(qū)別詳解
- JAVA面試題 從源碼角度分析StringBuffer和StringBuilder的區(qū)別
- Java中字符數(shù)組、String類、StringBuffer三者之間相互轉(zhuǎn)換
- JAVA StringBuffer類與StringTokenizer類代碼解析
- java 中String和StringBuffer與StringBuilder的區(qū)別及使用方法
- Java String 和StringBuffer的詳解及區(qū)別
- Java中StringBuffer和StringBuilder_動力節(jié)點(diǎn)Java學(xué)院整理
- java中 String和StringBuffer的區(qū)別實(shí)例詳解
- JAVA中String類與StringBuffer類的區(qū)別
- Java基礎(chǔ)之StringBuffer詳解
相關(guān)文章
SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式
這篇文章主要介紹了SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java中進(jìn)程、協(xié)程與線程的區(qū)別詳解
這篇文章主要介紹了Java中進(jìn)程,線程,協(xié)程的概念、區(qū)別以及使用場景的選擇,早期的操作系統(tǒng)每個程序就是一個進(jìn)程,知道一個程序運(yùn)行完,才能進(jìn)行下一個進(jìn)程,就是"單進(jìn)程時代",一切的程序只能串行發(fā)生,需要的朋友可以參考下2023-08-08
spring如何動態(tài)指定具體實(shí)現(xiàn)類
這篇文章主要為大家詳細(xì)介紹了spring如何動態(tài)指定具體實(shí)現(xiàn)類,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10
使用jib插件為Java應(yīng)用構(gòu)建鏡像的方法
這篇文章主要介紹了使用jib插件為Java應(yīng)用構(gòu)建鏡像,要是用戶本地沒安裝docker,可以使用jib制作出帶有鏡像的tar文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
springboot集成redis哨兵集群的實(shí)現(xiàn)示例
本文主要介紹了springboot集成redis哨兵集群的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
解決Mybatis?plus實(shí)體類屬性與表字段不一致的問題
這篇文章主要介紹了Mybatis?plus實(shí)體類屬性與表字段不一致解決方法,文末給大家提到了Mybatis-plus中數(shù)據(jù)庫表名和表字段名的相關(guān)知識,需要的朋友可以參考下2022-07-07

