本文原創文章,轉載注明出處,博客地址 https://segmentfault.com/u/to... 第一時間看后續精彩文章。覺得好的話,順手分享到朋友圈吧,感謝支持。
筆者經常忘記三者之間的區別,下面自己總結一番,畫一個表格來展示
Item | "+"區別 | 多線程 | 性能 | 使用場景 | 優化 |
---|---|---|---|---|---|
String | 不可變類,重新創建字符串 | 不安全 | 拼接時,性能差 | 操作少量數據,字符串不變時 | 無 |
StringBuilder | 可變類,原字符串基礎上生成字符串 | 不安全 | 性能最好(比StringBuffer高10%-15%) | 單線程操作大量數據(方法內部,用完回收) | 盡可能指定容量(默認:16,不超過16個字符不用指定),不指定顯著降低性能 |
StringBuffer | 可變類,原字符串基礎上生成字符串 | 安全 | 性能好 | 主要用在全局變量中,多線程下安全 | 同上 |
在現實的模塊化編程中,負責某一模塊的程序員不一定能清晰的判斷該模塊是否會放入多線程的環境中運行,除非確定系統的瓶頸是在StringBuffer上,并且確定你的模塊不會運行在多線程模式下,才可以采用StringBuilder,否則還是用StringBuffer
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70349.html
摘要:和它們都是可變的字符串,不過它們之間的區別是初中級面試出現幾率十分高的一道題。區別線程安全線程安全,線程不安全。區別性能既然是線程安全的,它的所有公開方法都是同步的,是沒有對方法加鎖同步的,所以毫無疑問,的性能要遠大于。 StringBuffer 和 StringBuilder 它們都是可變的字符串,不過它們之間的區別是 Java 初中級面試出現幾率十分高的一道題。這么簡單的一道題,棧...
摘要:與類基本相同,都是可變字符換字符串序列,不同點是是線程安全的,是線程不安全的。和區別在大部分情況下是線程安全的可變字符序列。在程序中可將字符串緩沖區安全地用于多線程。 轉載自飄過的小牛 我們先要記住三者的特征: String 字符串常量 StringBuffer 字符串變量(線程安全) StringBuilder 字符串變量(非線程安全) 一、定義 showImg(/...
摘要:與都繼承自類,在中也是使用字符數組保存字符串,,這兩種對象都是可變的。采用字節碼的好處語言通過字節碼的方式,在一定程度上解決了傳統解釋型語言執行效率低的問題,同時又保留了解釋型語言可移植的特點。 String和StringBuffer、StringBuilder的區別是什么?String為什么是不可變的? String和StringBuffer、StringBuilder的區別 可變性...
摘要:如果對于經常改變內容的字符串,使用效率高,但是它只適用于單線程的場景,在多線程場景下,容易導致數據不一致的現象出現。多線程場景下,要使用。在大部分情況下,線程安全的可變字符序列??蓪⒆址彌_區安全地用于多個線程。 本人博客 http://www.cnblogs.com/runfor... 總結: 1.String是字符串常量,StringBuffer是線程安全的字符串變量,Stri...
摘要:所以如果要進行的操作是多線程的,那么就要使用,但是在單線程的情況下,還是建議使用速度比較快的??偨Y一下適用于少量的字符串操作的情況適用于單線程下在字符緩沖區進行大量操作的情況適用多線程下在字符緩沖區進行大量操作的情況 [TOC] 原文鏈接:[https://www.cnblogs.com/su-fe...]: 這三個類之間的區別主要是在兩個方面,即運行速度和線程安全這兩方面 1、首先說...
閱讀 3024·2021-09-22 14:59
閱讀 1864·2021-09-22 10:02
閱讀 2108·2021-09-04 16:48
閱讀 2260·2019-08-30 15:53
閱讀 2967·2019-08-30 11:27
閱讀 3403·2019-08-29 18:35
閱讀 961·2019-08-29 17:07
閱讀 2669·2019-08-29 13:27