国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java字符串抉擇

2019-11-26 13:23:41
字體:
來源:轉載
供稿:網友

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

  1.String

  打開String的源碼,如圖所示

  會發現存儲字符串的字符數值是final常量。再看String的構造方法,發現String的value值在構造方法就確定了值。這里有必要說明下關鍵字final

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

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

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

  2.StringBuffer

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

  再來StringBuffer看看重載的三個構造方法

  發現都是調用父類AbstractStringBuilder的構造方法

  發現StringBuffer的存儲數據的char數組不是final類型的,說明可以變更,且構建出來的字符串都還有空余的位置來拼接字符串。

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

  查看其父類AbstractStringBuilder的append方法

  發現當value數組容量不夠時,會創建一個新的value數組來存儲字符串。到這里就應該明白了StringBuffer字符串拼接的原理啦。當char value數組不夠時會創建個更大容量的數組來存儲。效率明顯比String高。

  3.StringBuilder

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

  StringBuilder在大多數實現中比StringBuffer快, 在字符串緩沖區被單個線程訪問時,建議優先使用StringBuilder

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福贡县| 恩施市| 临沭县| 辽中县| 台州市| 津市市| 博罗县| 保德县| 阳江市| 偏关县| 蓬溪县| 辽中县| 神池县| 宝兴县| 浪卡子县| 阿城市| 镇原县| 开封市| 南华县| 竹北市| 微博| 永修县| 双峰县| 新平| 永丰县| 乐都县| 手游| 探索| 徐闻县| 历史| 大宁县| 阳东县| 海林市| 平阴县| 金沙县| 临桂县| 巴彦淖尔市| 香格里拉县| 五寨县| 翁源县| 娄烦县|