国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

String StringBuffer StringBuilder

2019-11-08 02:01:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1. StringBuilder

一個(gè)可變的字符序列。此類提供一個(gè)與 StringBuffer 兼容的 API,但不保證同步。該類被設(shè)計(jì)用作 StringBuffer 的一個(gè)簡(jiǎn)易替換,用在字符串緩沖區(qū)被單個(gè)線程使用的時(shí)候(這種情況很普遍)。如果可能,建議優(yōu)先采用該類,因?yàn)樵诖蠖鄶?shù)實(shí)現(xiàn)中,它比StringBuffer 要快。

StringBuilder 上的主要操作是 appendinsert 方法,可重載這些方法,以接受任意類型的數(shù)據(jù)。每個(gè)方法都能有效地將給定的數(shù)據(jù)轉(zhuǎn)換成字符串,然后將該字符串的字符追加或插入到字符串生成器中。append 方法始終將這些字符添加到生成器的末端;而insert 方法則在指定的點(diǎn)添加字符。

例如,如果 z 引用一個(gè)當(dāng)前內(nèi)容為 "start" 的字符串的生成器對(duì)象,則該方法調(diào)用 z.append("le") 將使字符串生成器包含 "startle",而z.insert(4, "le") 將更改字符串生成器,使之包含 "starlet"。

通常,如果 sb 引用 StringBuilder 的實(shí)例,則 sb.append(x)sb.insert(sb.length(), x) 具有相同的效果。每個(gè)字符串生成器都有一定的容量。只要字符串生成器所包含的字符序列的長(zhǎng)度沒(méi)有超出此容量,就無(wú)需分配新的內(nèi)部緩沖區(qū)。如果內(nèi)部緩沖區(qū)溢出,則此容量自動(dòng)增大。

StringBuilder 的實(shí)例用于多個(gè)線程是不安全的。如果需要這樣的同步,則建議使用 StringBuffer。 

2. StingBuffer

線程安全的可變字符序列。一個(gè)類似于 String 的字符串緩沖區(qū),但不能修改。雖然在任意時(shí)間點(diǎn)上它都包含某種特定的字符序列,但通過(guò)某些方法調(diào)用可以改變?cè)撔蛄械拈L(zhǎng)度和內(nèi)容。

可將字符串緩沖區(qū)安全地用于多個(gè)線程。可以在必要時(shí)對(duì)這些方法進(jìn)行同步,因此任意特定實(shí)例上的所有操作就好像是以串行順序發(fā)生的,該順序與所涉及的每個(gè)線程進(jìn)行的方法調(diào)用順序一致。

StringBuffer 上的主要操作是 appendinsert 方法,可重載這些方法,以接受任意類型的數(shù)據(jù)。每個(gè)方法都能有效地將給定的數(shù)據(jù)轉(zhuǎn)換成字符串,然后將該字符串的字符追加或插入到字符串緩沖區(qū)中。append 方法始終將這些字符添加到緩沖區(qū)的末端;而insert 方法則在指定的點(diǎn)添加字符。

例如,如果 z 引用一個(gè)當(dāng)前內(nèi)容為 "start" 的字符串緩沖區(qū)對(duì)象,則此方法調(diào)用 z.append("le") 會(huì)使字符串緩沖區(qū)包含 "startle",而z.insert(4, "le") 將更改字符串緩沖區(qū),使之包含 "starlet"。

通常,如果 sb 引用 StringBuilder 的一個(gè)實(shí)例,則 sb.append(x)sb.insert(sb.length(), x) 具有相同的效果。

當(dāng)發(fā)生與源序列有關(guān)的操作(如源序列中的追加或插入操作)時(shí),該類只在執(zhí)行此操作的字符串緩沖區(qū)上而不是在源上實(shí)現(xiàn)同步。

每個(gè)字符串緩沖區(qū)都有一定的容量。只要字符串緩沖區(qū)所包含的字符序列的長(zhǎng)度沒(méi)有超出此容量,就無(wú)需分配新的內(nèi)部緩沖區(qū)數(shù)組。如果內(nèi)部緩沖區(qū)溢出,則此容量自動(dòng)增大。從 JDK 5 開(kāi)始,為該類補(bǔ)充了一個(gè)單個(gè)線程使用的等價(jià)類,即StringBuilder。與該類相比,通常應(yīng)該優(yōu)先使用StringBuilder 類,因?yàn)樗С炙邢嗤牟僮鳎捎谒粓?zhí)行同步,所以速度更快。 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 梨树县| 霍邱县| 桂东县| 嘉兴市| 车致| 杭锦后旗| 建湖县| 随州市| 雅江县| 扎囊县| 石景山区| 集贤县| 南安市| 江西省| 集安市| 屯昌县| 邓州市| 铜陵市| 榆社县| 宾川县| 丰镇市| 南华县| 延吉市| 江川县| 凤台县| 广德县| 兰坪| 吉木乃县| 托克逊县| 郓城县| 东光县| 五峰| 包头市| 永年县| 山丹县| 福州市| 咸丰县| 高唐县| 温宿县| 稻城县| 泽州县|