字符串(2)-StringBuffer與StringBuilder

1.StringBuffer
1)StringBuffer:線程不安全,也是對字符串的操作,位于java.lang包中赵辕,其底層也是字符數(shù)組,初始化長度是16概龄;但是它在String類的基礎(chǔ)上有了很大的改進还惠,最大的特點就是String是不可變。的旁钧,StringBuffer是可變化的吸重。
2)常用方法
增加:
在字符串后附加,參數(shù)可以是任意基本數(shù)據(jù)類型歪今,boolean會被轉(zhuǎn)為"true"或者"false"等
public StringBuffer append(Object obj);
public StringBuffer append(String str);
public StringBuffer append(double d) ;
在指定位置后增加字符串,參數(shù)可以是任意基本數(shù)據(jù)類型颜矿,boolean會被轉(zhuǎn)為"true"或者"false"等
public StringBuffer insert(int offset, boolean b);
public StringBuffer insert(String str);
public StringBuffer insert(double d) ;
刪除:
public StringBuffer deleteCharAt(int index) :刪除指定位置的字符
public StringBuffer delete(int start, int end):刪除指定位置到指定位置的字符串
修改:
public StringBuffer replace(int start, int end, String str):將指定位置的字符串(start到end位置的)替換為str
反轉(zhuǎn):
public synchronized StringBuffer reverse() :將字符串反轉(zhuǎn)返回寄猩。
3)String與StringBuffer:
<1>String是字符串常量,是不變的骑疆,在改動String時候?qū)嶋H上是又新建了一個String對象田篇;而StringBuffer是可變的替废,在改動的時候是先保存了原先對象的地址,然后將改動后的對象放在原地址上的泊柬。

    //以對字符串的增加為例
        String s1 = "ad";
        System.out.println(s1.hashCode());//3107
        s1+="sd";
        System.out.println(s1.hashCode());//2989492

        StringBuffer sb2 = new StringBuffer("ss");
        System.out.println(sb2.hashCode());//460141958
        sb2.append("as");
        System.out.println(sb2.hashCode());//460141958

從結(jié)果上可以發(fā)現(xiàn)椎镣,String的地址發(fā)生了改變,StringBuffer的地址沒有發(fā)生改變兽赁。
<2>在使用字符串進行增刪改查操作時候状答,由于String將會新建對象后然后引用,這樣大大影響了性能刀崖,而StringBuffer是在原來的對象上修改的所以不存在這樣的影響惊科。當數(shù)據(jù)量巨大時候,String將會造成大量的對象的創(chuàng)建亮钦,而StringBuffer則是始終只有一個對象馆截。

String s1 = "sadfge";
        String str1 = new String("sadgfe");
        StringBuffer sb1 = new StringBuffer("sadfge");
        long a1 = System.currentTimeMillis();
        for(int i = 0;i<10000;i++){
            s1+="sadfge";
        }
        long a2 = System.currentTimeMillis();
        System.out.println(a2-a1);//501

        long a3 = System.currentTimeMillis();
        for(int i = 0;i<10000;i++){
            sb1.append("sadfge");
        }
        long a4 = System.currentTimeMillis();
        System.out.println(a4-a3);//0

從結(jié)果上可以看到在處理大數(shù)據(jù)量時候的明顯差距。
2.StringBuilder
StringBuilder是5.0新增的蜂莉,是線程不安全的蜡娶,其大部分方法與StringBuffer是一致的。
3.總結(jié)
1)對于數(shù)據(jù)量小的使用String;
2)數(shù)據(jù)量大且要求線程安全的使用StringBuffer;
3)數(shù)據(jù)量大且并無線程安全要求的使用StringBuilder映穗。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翎蹈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子男公,更是在濱河造成了極大的恐慌荤堪,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枢赔,死亡現(xiàn)場離奇詭異澄阳,居然都是意外死亡,警方通過查閱死者的電腦和手機踏拜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門碎赢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人速梗,你說我怎么就攤上這事肮塞。” “怎么了姻锁?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵枕赵,是天一觀的道長。 經(jīng)常有香客問我位隶,道長拷窜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮篮昧,結(jié)果婚禮上赋荆,老公的妹妹穿的比我還像新娘。我一直安慰自己懊昨,他們只是感情好窄潭,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著酵颁,像睡著了一般嫉你。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上材义,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天均抽,我揣著相機與錄音,去河邊找鬼其掂。 笑死油挥,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的款熬。 我是一名探鬼主播深寥,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贤牛!你這毒婦竟也來了惋鹅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤殉簸,失蹤者是張志新(化名)和其女友劉穎闰集,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體般卑,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡武鲁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝠检。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沐鼠。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叹谁,靈堂內(nèi)的尸體忽然破棺而出饲梭,到底是詐尸還是另有隱情,我是刑警寧澤焰檩,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布憔涉,位于F島的核電站,受9級特大地震影響锅尘,放射性物質(zhì)發(fā)生泄漏监氢。R本人自食惡果不足惜布蔗,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一藤违、第九天 我趴在偏房一處隱蔽的房頂上張望浪腐。 院中可真熱鬧,春花似錦顿乒、人聲如沸议街。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽特漩。三九已至,卻和暖如春骨杂,著一層夾襖步出監(jiān)牢的瞬間涂身,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工搓蚪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛤售,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓妒潭,卻偏偏與公主長得像悴能,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子雳灾,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容