Java String脆丁、StringBuilder和StringBuffer的區(qū)別

(1)String類對象為不可變對象世舰,一旦你修改了String對象的值,隱性重新創(chuàng)建了一個新的對象偎快,釋放原String對象冯乘,StringBuffer類對象為可修改對象,可以通過append()方法來修改值

(2)String類對象的性能遠(yuǎn)不如StringBuffer類晒夹。

在java中有3個類來負(fù)責(zé)字符的操作裆馒。

  1. Character 是進行單個字符操作的,

  2. String 對一串字符進行操作丐怯。不可變類喷好。

  3. StringBuffer 也是對一串字符進行操作,但是可變類读跷。

String:
是對象不是原始類型.
為不可變對象,一旦被創(chuàng)建,就不能修改它的值.
對于已經(jīng)存在的String對象的修改都是重新創(chuàng)建一個新的對象,然后把新的值保存進去.
String 是final類,即不能被繼承.

StringBuffer:
是一個可變對象,當(dāng)對他進行修改的時候不會像String那樣重新建立對象
它只能通過構(gòu)造函數(shù)來建立,
StringBuffer sb = new StringBuffer();
注意:不能通過賦值符號對他進行賦值.
sb = "welcome to here!";//error
對象被建立以后,在內(nèi)存中就會分配內(nèi)存空間,并初始保存一個null.向StringBuffer中賦值的時候可以通過它的append方法.
sb.append("hello");
字符串連接操作中StringBuffer的效率要比String高:
String str = new String("welcome to ");
str += "here";
的處理步驟實際上是通過建立一個StringBuffer,然后調(diào)用append(),最后
再將toSting(), 這樣String的連接操作就比StringBuffer多出了一些附加操作,當(dāng)然效率上要打折扣梗搅。并且由于String 對象是不可變對象,每次操作Sting 都會重新建立新的對象來保存新的值, 這樣原來的對象就沒用了,就要被垃圾回收.這也是要影響性能的。

StringBuilder:
StringBuilder類不是線程安全的效览,但其在單線程中的性能比StringBuffer高无切。

執(zhí)行速度方面的比較:StringBuilder > StringBuffer > String

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

  1. 如果要操作少量的數(shù)據(jù)用 = String
  2. 單線程操作字符串緩沖區(qū) 下操作大量數(shù)據(jù) = StringBuilder
  3. 多線程操作字符串緩沖區(qū) 下操作大量數(shù)據(jù) = StringBuffer
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市丐枉,隨后出現(xiàn)的幾起案子哆键,更是在濱河造成了極大的恐慌,老刑警劉巖瘦锹,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件籍嘹,死亡現(xiàn)場離奇詭異闪盔,居然都是意外死亡,警方通過查閱死者的電腦和手機辱士,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門泪掀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人颂碘,你說我怎么就攤上這事异赫。” “怎么了凭涂?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵祝辣,是天一觀的道長贴妻。 經(jīng)常有香客問我切油,道長,這世上最難降的妖魔是什么名惩? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任澎胡,我火速辦了婚禮,結(jié)果婚禮上娩鹉,老公的妹妹穿的比我還像新娘攻谁。我一直安慰自己,他們只是感情好弯予,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布戚宦。 她就那樣靜靜地躺著,像睡著了一般锈嫩。 火紅的嫁衣襯著肌膚如雪受楼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天呼寸,我揣著相機與錄音艳汽,去河邊找鬼。 笑死对雪,一個胖子當(dāng)著我的面吹牛河狐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瑟捣,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼馋艺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了迈套?” 一聲冷哼從身側(cè)響起捐祠,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎交汤,沒想到半個月后雏赦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劫笙,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年星岗,在試婚紗的時候發(fā)現(xiàn)自己被綠了填大。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡俏橘,死狀恐怖允华,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寥掐,我是刑警寧澤靴寂,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站召耘,受9級特大地震影響百炬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜污它,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一剖踊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧衫贬,春花似錦德澈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至葬毫,卻和暖如春镇辉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背供常。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工摊聋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栈暇。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓麻裁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親源祈。 傳聞我的和親對象是個殘疾皇子煎源,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法香缺,內(nèi)部類的語法手销,繼承相關(guān)的語法,異常的語法图张,線程的語...
    子非魚_t_閱讀 31,630評論 18 399
  • 一锋拖、String 1诈悍、String 類代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作為此類...
    小心隕石閱讀 374評論 0 1
  • Tip:筆者馬上畢業(yè)了兽埃,準(zhǔn)備開始 Java 的進階學(xué)習(xí)計劃放妈。于是打算先從 String 類的源碼分析入手斜做,作為后面...
    石先閱讀 12,011評論 16 58
  • 其實我們在追究這三個的區(qū)別,一般都是在研究如何進行內(nèi)存優(yōu)化,這三者基本上都是被一個"+"給關(guān)聯(lián)著,以前編寫代碼我們...
    黑石ZB閱讀 892評論 0 3
  • 如今的快銷時代堪侯,愛是什么已不重要催蝗。你可以說精神碰撞的火花絕對是真愛,當(dāng)然也可以將荷爾蒙帶來的感官享受看作是愛售貌,而被...
    減三閱讀 493評論 0 0