欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java字符串抉擇

 更新時間:2016年12月23日 17:19:17   投稿:mrr  
下面給大家解析字符串連接方面的知識,包括string,stringbuffer和stringbuilder等方面的知識,對java字符串知識感興趣的朋友一起學(xué)習(xí)吧

下面我們就字符串連接方面分析。

  1.String

  打開String的源碼,如圖所示

  會發(fā)現(xiàn)存儲字符串的字符數(shù)值是final常量。再看String的構(gòu)造方法,發(fā)現(xiàn)String的value值在構(gòu)造方法就確定了值。這里有必要說明下關(guān)鍵字final

  final修飾的屬性為常量(值不可改變),要么在聲明的同時賦值,要么在構(gòu)造方法里面進行賦值,一旦賦值就不能改變。

  所以,用String來實現(xiàn)字符串拼接,由于String的值不可改變,所以每次拼接都要生成一個新的String來存儲新的字符串。所以使用String來處理字符串拼接性能會很低。

  更多String的信息,可以參考博客:http://longpo.iteye.com/blog/2199493

  2.StringBuffer

  StringBuffer類繼承了抽象類 AbstractStringBuilder類,打開AbstractStringBuilder源碼

  再來StringBuffer看看重載的三個構(gòu)造方法

  發(fā)現(xiàn)都是調(diào)用父類AbstractStringBuilder的構(gòu)造方法

  發(fā)現(xiàn)StringBuffer的存儲數(shù)據(jù)的char數(shù)組不是final類型的,說明可以變更,且構(gòu)建出來的字符串都還有空余的位置來拼接字符串。

  在StringBuffer中我們使用append()函數(shù)來進行字符串的拼接。我們可以想到雖然char數(shù)組還有剩余,但一直拼接肯定也不夠用。所以有必要看看append函數(shù)的源碼實現(xiàn)。

  查看其父類AbstractStringBuilder的append方法

  發(fā)現(xiàn)當value數(shù)組容量不夠時,會創(chuàng)建一個新的value數(shù)組來存儲字符串。到這里就應(yīng)該明白了StringBuffer字符串拼接的原理啦。當char value數(shù)組不夠時會創(chuàng)建個更大容量的數(shù)組來存儲。效率明顯比String高。

  3.StringBuilder

  StringBuilder和StringBuffer是兩兄弟,用法基本一樣,不同的是StringBuffer是同步的,線程安全的,而StringBuilder不保證同步,線程不安全。

  StringBuilder在大多數(shù)實現(xiàn)中比StringBuffer快, 在字符串緩沖區(qū)被單個線程訪問時,建議優(yōu)先使用StringBuilder

以上所述是小編給大家介紹的java字符串抉擇,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)

    JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)

    在一個程序執(zhí)行的過程中各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的,這篇文章主要給大家介紹了關(guān)于JAVASE精密邏輯控制(分支和循環(huán)語句)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文標點輸入無效的完美解決方法

    Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文標點輸入無效的完美解決方法

    Mac OS X 下基于 Java 的程序會出現(xiàn)中文標點輸入無效的問題,在中文輸入法狀態(tài),可以輸入中文字,但輸入中文標點最后上去的是英文標點.這篇文章主要介紹了Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文標點輸入無效的完美解決方法,需要的朋友可以參考下
    2016-10-10
  • SpringBoot統(tǒng)一響應(yīng)和統(tǒng)一異常處理詳解

    SpringBoot統(tǒng)一響應(yīng)和統(tǒng)一異常處理詳解

    在開發(fā)Spring Boot應(yīng)用時,處理響應(yīng)結(jié)果和異常的方式對項目的可維護性、可擴展性和團隊協(xié)作有著至關(guān)重要的影響,統(tǒng)一結(jié)果返回和統(tǒng)一異常處理是提升項目質(zhì)量的關(guān)鍵策略之一,所以本文給大家詳細介紹了SpringBoot統(tǒng)一響應(yīng)和統(tǒng)一異常處理,需要的朋友可以參考下
    2024-08-08
  • 詳細講解Java中的main()方法

    詳細講解Java中的main()方法

    在java中main()方法是java應(yīng)用程序的入口方法,由此可見main方法是很重要的,那么下面這篇文章就給大家詳解介紹了Java中的main()方法,需要的朋友可以參考下。
    2016-09-09
  • 淺談cookie 和session 的區(qū)別

    淺談cookie 和session 的區(qū)別

    下面小編就為大家?guī)硪黄獪\談cookie 和session 的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Java BigDecimal使用及基本運算(推薦)

    Java BigDecimal使用及基本運算(推薦)

    Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進行精確的運算。這篇文章主要介紹了Java BigDecimal使用指南針(推薦),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Spring項目使用Maven和BCrypt實現(xiàn)修改密碼功能方式

    Spring項目使用Maven和BCrypt實現(xiàn)修改密碼功能方式

    在數(shù)字時代,信息安全尤其是密碼安全至關(guān)重要,本文通過實例探討如何在Spring項目中利用Maven和BCrypt實現(xiàn)一個安全的密碼修改功能,我們將從環(huán)境搭建到編寫核心業(yè)務(wù)邏輯,再到完成功能測試,確保每一步都遵循最佳安全實踐,通過本文,你將了解到密碼安全的重要性
    2024-10-10
  • springboot中使用過濾器,jsoup過濾XSS腳本詳解

    springboot中使用過濾器,jsoup過濾XSS腳本詳解

    這篇文章主要介紹了springboot中使用過濾器,jsoup過濾XSS腳本詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Springcloud微服務(wù)架構(gòu)基礎(chǔ)知識解析

    Springcloud微服務(wù)架構(gòu)基礎(chǔ)知識解析

    這篇文章主要介紹了Springcloud微服務(wù)架構(gòu)基礎(chǔ)知識解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 使用@Autowired可以注入ApplicationContext

    使用@Autowired可以注入ApplicationContext

    這篇文章主要介紹了使用@Autowired可以注入ApplicationContext問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論