溫馨提示×

溫馨提示×

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

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

Java中Sring和StringBuffer、StringBuilder間有什么區(qū)別

發(fā)布時間:2022-02-24 10:48:32 來源:億速云 閱讀:156 作者:iii 欄目:開發(fā)技術

這篇“Java中Sring和StringBuffer、StringBuilder間有什么區(qū)別”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java中Sring和StringBuffer、StringBuilder間有什么區(qū)別”文章吧。

可變性

String 類中通常使用字符數組去保存字符串,比如:Private、final、char 和 value[ ],所以我們說 string 對象是不可變的。

Stringbuffer 和 StringBuider 都是繼承于 AbstractStringBuilder 類,在 AbstractStringBuilder 里同樣使用字符數組去保存字符串,char [ ] value ,這兩個對象都是可變的。

性能

對 String 類型改變時,會生成新的 String 對象,接著將指針對準新的 String 對象。StringBuffer 都會對 StringBuffer 對象的本身進行操作,而不是去生成新的對象再改變對象的引用。相同情況下用 StringBuilder 相比去用 StringBuffer 只能獲取到 10%~15% 的性能提升,還要冒多線程并不安全的風險。

線程安全性

String 內的對象不可變的,可以理以上就是小編為您帶來的關于 Linux常用命令大全 的全部內容。解為常量,線程安全。AbstractStringBuilder 作為 StringBuilder 和 StringBuffer 的公共父類,定義了相關字符串的基本操作,比如 expandCapacity、append、insert、indexOf 等公共方法。StringBuffer 對方法加了同步鎖或者對調用的方法加了同步鎖,所以線程是安全的。StringBuilder 并沒有對方法進行加同步鎖,所以是非線程安全的。

三者的總結

String :要操作少量的數據

StringBuilder:單線程操作字符串緩沖區(qū) 并操作大量數據

StringBuffer:多線程操作字符串緩沖區(qū) 并操作大量數據

以上就是關于“Java中Sring和StringBuffer、StringBuilder間有什么區(qū)別”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

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

AI