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