91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中String StringBuffer 、 StringBuilder 、String的示例分析

發布時間:2021-12-21 14:34:16 來源:億速云 閱讀:156 作者:小新 欄目:大數據

這篇文章主要為大家展示了“java中String StringBuffer 、 StringBuilder 、String的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“java中String StringBuffer 、 StringBuilder 、String的示例分析”這篇文章吧。

可變性

簡單的來說:String 類中使用 final 關鍵字修飾字符數組來保存字符串,private final char value[],所以 String 對象是不可變的。而StringBuilder 與 StringBuffer 都繼承自 AbstractStringBuilder 類,在 AbstractStringBuilder 中也是使用字符數組保存字符串char[]value 但是沒有用 final 關鍵字修飾,所以這兩種對象都是可變的。

StringBuilder 與 StringBuffer 的構造方法都是調用父類構造方法也就是 AbstractStringBuilder 實現的,大家可以自行查閱源碼。

線程安全性

String 中的對象是不可變的,也就可以理解為常量,線程安全。AbstractStringBuilder 是 StringBuilder 與 StringBuffer 的公共父類,定義了一些字符串的基本操作,如 expandCapacity、append、insert、indexOf 等公共方法。StringBuffer 對方法加了同步鎖或者對調用的方法加了同步鎖,所以是線程安全的。StringBuilder 并沒有對方法進行加同步鎖,所以是非線程安全的。 

性能

每次對 String 類型進行改變的時候,都會生成一個新的 String 對象,然后將指針指向新的 String 對象。StringBuffer 每次都會對 StringBuffer 對象本身進行操作,而不是生成新的對象并改變對象引用。相同情況下使用 StringBuilder 相比使用 StringBuffer 僅能獲得 10%~15% 左右的性能提升,但卻要冒多線程不安全的風險。

對于三者使用的總結:

  1. 操作少量的數據: 適用String

  2. 單線程操作字符串緩沖區下操作大量數據: 適用StringBuilder

  3. 多線程操作字符串緩沖區下操作大量數據: 適用StringBuffer

以上是“java中String StringBuffer 、 StringBuilder 、String的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

承德市| 汝州市| 苍溪县| 泸水县| 台北县| 福安市| 台北市| 博白县| 顺义区| 万源市| 西宁市| 淮安市| 桃江县| 芷江| 珲春市| 忻州市| 郸城县| 双流县| 河津市| 庆安县| 桐城市| 南京市| 万载县| 新乡县| 建平县| 望奎县| 门头沟区| 迁安市| 长海县| 佛坪县| 柳州市| 盐亭县| 永清县| 桑植县| 浦江县| 赤城县| 衡阳县| 林芝县| 慈溪市| 平顶山市| 芷江|