国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

1.2 String 和 StringBuffer,StringBuilder 的區(qū)別是什么? String 為什么是不可變的

2020-11-10 22:49 作者:夜雨658  | 我要投稿

可變性?

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

StringBuilder 與 StringBuffer 的構(gòu)造方法都是調(diào)用父類構(gòu)造方法也就是 AbstractStringBuilder 實(shí)現(xiàn)的,大家可以自?

行查閱源碼。 2

AbstractStringBuilder.java?

abstract class AbstractStringBuilder implements Appendable, CharSequence {

char[] value;?

int count;?

AbstractStringBuilder() {

}?

AbstractStringBuilder(int capacity) {?

value = new char[capacity];

}?

線程安全性?

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

性能?

abstract class AbstractStringBuilder implements Appendable, CharSequence {?

char[] value;

int count;?

AbstractStringBuilder() {?

}?

AbstractStringBuilder(int capacity) {

value = new char[capacity];

}

每次對(duì) String 類型進(jìn)行改變的時(shí)候,都會(huì)生成一個(gè)新的 String 對(duì)象,然 后將指針指向新的 String 對(duì)象。

StringBuffer 每次都會(huì)對(duì) StringBuffer 對(duì)象本身進(jìn)行操作,而不是生成新 的對(duì)象并改變對(duì)象引用。相同情況下使用 StirngBuilder 相比使用

StringBuffer 僅能獲得 10%~15% 左右的性能提升,但卻要冒多線程不安全的 風(fēng)險(xiǎn)。

3 對(duì)于三者使用的總結(jié):

1. 操作少量的數(shù)據(jù) = String?

2. 單線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù) = StringBuilder?

3. 多線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù) = StringBuffer

1.2 String 和 StringBuffer,StringBuilder 的區(qū)別是什么? String 為什么是不可變的的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
西畴县| 乡宁县| 旌德县| 马龙县| 苏尼特左旗| 道孚县| 元江| 疏附县| 东宁县| 和平县| 宝鸡市| 任丘市| 湖南省| 宁河县| 磐安县| 东莞市| 西吉县| 屯门区| 灵石县| 黑龙江省| 潜山县| 嵊泗县| 永登县| 金塔县| 商洛市| 扎囊县| 彭州市| 汉川市| 进贤县| 文成县| 龙井市| 琼中| 榆林市| 比如县| 永川市| 胶南市| 巴林左旗| 三江| 东兴市| 大邑县| 阜南县|