最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

StringBuffer與StringBuilder底層擴(kuò)容機(jī)制與常用方法

 更新時(shí)間:2023年07月05日 10:28:15   作者:指揮官乄  
這篇文章主要給大家介紹了StringBuffer、StringBuilder底層擴(kuò)容機(jī)制與常用方法,有感興趣的小伙伴跟著小編一起來學(xué)習(xí)吧

StringBuffer 與 StringBuilder底層分析、擴(kuò)容機(jī)制與常用方法

StringBuffer(線性安全)

  • 直接父類AbstractStringBuilder
  • 實(shí)現(xiàn)了Serializable,可以串行化
  • 在父類AbstractStringBuilder有屬性char[] value 不是final類型,該value數(shù)字存放字符串內(nèi)容,引出存放在堆中,所以在變化的時(shí)候不用每次都更改地址,創(chuàng)建新的對象,效率高
  • 是一個(gè)final類,不能被繼承

StringBuffer構(gòu)造方法

  • StringBuffer()初始容量為16
  • StringBuffer(int capacity) 初始容量為指定大小
  • StringBuffer(String str) 初始容量為指定字符串+16,注意是容量不是長度

StringBuffer擴(kuò)容 (StringBuilder擴(kuò)容機(jī)制一樣)

擴(kuò)容方式:2n+2

源碼:

private int newCapacity(int minCapacity) {
        // overflow-conscious code
        int newCapacity = (value.length << 1) + 2;
        if (newCapacity - minCapacity < 0) {
            newCapacity = minCapacity;
        }
        return (newCapacity <= 0 || MAX_ARRAY_SIZE - newCapacity < 0)
            ? hugeCapacity(minCapacity)
            : newCapacity;
    }

StringBuffer、StringBuilder的類繼承結(jié)構(gòu)圖,兩者的結(jié)構(gòu)圖是一樣的

StringBuffer常用方法

  • 增 append
  • 刪 delete(start,end)
  • 改 replace (start,end,string) ,string是要修改成的新內(nèi)容
  • 查 indexOf(string) , string是要 查找的內(nèi)容
  • 插入 insert
  • 獲取長度 length() 注意有括號

StringBuilder (不安全)

  • 線程不安全,單線程優(yōu)先使用,方法中沒有synchronized修飾
  • 主要操作時(shí)append和insert,可以重載這些方法,可以接受任何類型的數(shù)據(jù)
  • 擴(kuò)容機(jī)制與StringBuffer一樣

String、StringBuffer、StringBuilder三者之間的區(qū)別

  • StringBuffer、StringBuilder 均代表可變字符串,方法一樣
  • String:不可變字符序列,效率低,但是復(fù)用率高
  • StringBuffer:可變字符串、增刪效率高,線性安全
  • StringBuilder:可變字符串、增刪效率高,線性不安全

使用場景

1.如果字符串存在大量的修改操作,一般使用StringBuffer 或StringBuilder

2 . 如果字符串存在大量的修改操作,并在單線程的情況,使用 StringBuilder

3.如果字符串存在大量的修改操作,并在多線程的情況,使用 StringBuffer

4.如果我們字符串很少修改,被多個(gè)對象引用,使用String,比如配置信息等

到此這篇關(guān)于StringBuffer與StringBuilder底層擴(kuò)容機(jī)制與常用方法的文章就介紹到這了,更多相關(guān)StringBuffer與StringBuilder擴(kuò)容與用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 日期時(shí)間工具包–java.time的使用

    Java 日期時(shí)間工具包–java.time的使用

    這篇文章主要介紹了Java 日期時(shí)間工具包–java.time的使用,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04
  • 淺談Java線程池的7大核心參數(shù)

    淺談Java線程池的7大核心參數(shù)

    本篇文章基于正在看這篇文章的你已經(jīng)具備了基本的Java并發(fā)的相關(guān)知識.如果對于Java并發(fā)編程一無所知的話,請先看看Java并發(fā)編程的一些前導(dǎo)基礎(chǔ)知識,文中有非常詳細(xì)的圖文示例及代碼,,需要的朋友可以參考下
    2021-05-05
  • Nacos入門過程的坑--獲取不到配置的值問題

    Nacos入門過程的坑--獲取不到配置的值問題

    這篇文章主要介紹了Nacos入門過程的坑--獲取不到配置的值問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 詳解Spring中REQUIRED事務(wù)的回滾機(jī)制詳解

    詳解Spring中REQUIRED事務(wù)的回滾機(jī)制詳解

    在Spring的事務(wù)管理中,REQUIRED是最常用也是默認(rèn)的事務(wù)傳播屬性,本文就來詳細(xì)的介紹一下Spring中REQUIRED事務(wù)的回滾機(jī)制,感興趣的可以了解一下
    2025-09-09
  • Spring Boot + MyBatis Plus 高效開發(fā)實(shí)戰(zhàn)從入門到進(jìn)階優(yōu)化(推薦)

    Spring Boot + MyBatis Plus 高效開發(fā)實(shí)戰(zhàn)從入

    本文將詳細(xì)介紹 Spring Boot + MyBatis Plus 的完整開發(fā)流程,并深入剖析分頁查詢、批量操作、動(dòng)態(tài) SQL、樂觀鎖、代碼優(yōu)化等實(shí)戰(zhàn)技巧,感興趣的朋友一起看看吧
    2025-04-04
  • 利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片

    利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片

    這篇文章主要為大家詳細(xì)介紹了利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • SpringBoot實(shí)現(xiàn)網(wǎng)絡(luò)限速的詳細(xì)步驟

    SpringBoot實(shí)現(xiàn)網(wǎng)絡(luò)限速的詳細(xì)步驟

    本文詳細(xì)介紹了網(wǎng)絡(luò)限速的重要性及常見限速策略,如固定窗口計(jì)數(shù)器、滑動(dòng)窗口計(jì)數(shù)器、令牌桶算法和漏桶算法,并重點(diǎn)講解了如何在SpringBoot中使用AOP和令牌桶算法實(shí)現(xiàn)網(wǎng)絡(luò)限速,通過自定義注解、面向切面編程和測試驗(yàn)證等步驟,需要的朋友可以參考下
    2026-04-04
  • 深入理解Java基礎(chǔ)中的集合框架

    深入理解Java基礎(chǔ)中的集合框架

    Java集合框架(Java Collections Framework, JCF)也稱容器,這里可以類比 C++中的 STL,在這里主要對如下部分進(jìn)行源碼分析,及在面試中常見的問題,例如,在阿里面試常問到的 HashMap和ConcurrentHashMap原理等等,深入源碼分析是面試中必備的技能
    2023-08-08
  • SpringBoot使用MyBatis的XML文件進(jìn)行SQL語句編寫

    SpringBoot使用MyBatis的XML文件進(jìn)行SQL語句編寫

    在現(xiàn)代 Java Web 開發(fā)中,Spring Boot 和 MyBatis 是兩個(gè)非常流行的技術(shù)框架,本文將詳細(xì)介紹如何在 Spring Boot 項(xiàng)目中使用 MyBatis 的 XML 文件來編寫 SQL 語句,感興趣的可以了解下
    2025-07-07
  • java實(shí)現(xiàn)酷狗音樂臨時(shí)緩存文件轉(zhuǎn)換為MP3文件的方法

    java實(shí)現(xiàn)酷狗音樂臨時(shí)緩存文件轉(zhuǎn)換為MP3文件的方法

    這篇文章主要介紹了java實(shí)現(xiàn)酷狗音樂臨時(shí)緩存文件轉(zhuǎn)換為MP3文件的方法,涉及java針對文件操作的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08

最新評論

峨眉山市| 揭阳市| 吉林省| 祁连县| 息烽县| 曲沃县| 南开区| 永清县| 黔西县| 东安县| 柳河县| 江城| 育儿| 宜春市| 秦皇岛市| 铜川市| 高台县| 江北区| 通化县| 酉阳| 镶黄旗| 招远市| 原平市| 宁远县| 元阳县| 玉屏| 辽阳县| 石林| 黄大仙区| 昌乐县| 海宁市| 逊克县| 寻乌县| 延寿县| 江源县| 望都县| 晋宁县| 修文县| 衡阳市| 游戏| 武定县|