蘇州培訓(xùn)網(wǎng) > 蘇州JAVA培訓(xùn)機(jī)構(gòu) > 三網(wǎng)IT
首頁(yè) 培訓(xùn)網(wǎng) 最新資訊 熱門問(wèn)答

三網(wǎng)IT

免費(fèi)試聽(tīng) 13013833891

您當(dāng)前的位置: 資訊首頁(yè) > JAVA培訓(xùn)資訊 > 蘇州JAVA中?級(jí)培訓(xùn)

蘇州JAVA中?級(jí)培訓(xùn)

來(lái)源:教育聯(lián)展網(wǎng)    編輯:佚名    發(fā)布時(shí)間:2018-04-08

蘇州JAVA中級(jí)培訓(xùn)

如果明天你要參加一場(chǎng)面試,面試官有個(gè)題目是:說(shuō)說(shuō)String/StringBuffer/StringBuilder它們之間的區(qū)別?你會(huì)怎么回答呢?(腦補(bǔ)一下答案)今天,小編就來(lái)和大家詳細(xì)聊聊字符串String/StringBuffer/StringBuilder,告訴你怎樣完美的回答以上面試官的問(wèn)題,希望對(duì)你有幫助。

考點(diǎn)分析

這個(gè)題目也是考查字符串相關(guān)的。對(duì)于這個(gè)題目,我們**閱讀源碼來(lái)驗(yàn)證我們的答案。

蘇州JAVA中級(jí)培訓(xùn)

上圖主要顯示String/StringBuilder/StringBuffer的UML結(jié)構(gòu)。


為什么要引入其它兩種字符串處理類?

說(shuō)白了就是提高字符串連接效率。在大部分情況下,字符串的拼接速度為:StringBuilder>StringBuffer>String。

String是不可變的,因此每次對(duì)其操作改變其變量值,其實(shí)是生成一個(gè)新的對(duì)象,然后將變量引用指向新對(duì)象;因此速度慢。

StringBuffer則不同,對(duì)其操作即直接操作對(duì)象指向的引用,無(wú)需產(chǎn)生新對(duì)象,速度很快;它是線程安全的,在維護(hù)多線程的同步等也會(huì)消耗一點(diǎn)性能。

StringBuilder是jdk5之后新增的,其用法與StringBuffer完全一致,但它是線程不安全的,在單線程中**,因?yàn)槠洳恍枰S護(hù)線程的安全,因此是**快的。


是否線程安全?

String 字符串常量(線程安全)。StringBuffer 字符串變量(線程安全)。StringBuilder 字符串變量(非線程安全)。

String 是不可變的,StringBuffer/StringBuilder 是可變的;String/StringBuffer是線程安全的,StringBuilder是非線程安全的。


這里引入來(lái)一個(gè)新的問(wèn)題,了解String.intern()方法嗎?

String.intern()查找常量池中是否有相同Unicode的字符串常量,如果有,則返回其的引用,如果沒(méi)有,則在常量池中增加一個(gè)Unicode等于str的字符串并返回它的引用。因此在用String進(jìn)行字符串拼接時(shí),會(huì)產(chǎn)生很多臨時(shí)變量。建議多使用StringBuffer/StringBuilder。


存放在什么地方?

String是存放在常量池,在編譯期已經(jīng)被確定了。new String()不是字符串常量,它有自己的地址空間,存放在堆空間。而其它兩個(gè)都存放在堆空間。



咨詢聯(lián)系方式:13861302024(楊老師)或者QQ:2589245390 還可以直接在線咨詢

更多JAVA課程推薦:

蘇州JAVA培訓(xùn)網(wǎng)

蘇州JAVA軟件培訓(xùn)

蘇州三網(wǎng)IT教育培訓(xùn)

蘇州其然軟件開(kāi)發(fā)培訓(xùn)

上一篇:蘇州JAVA?初級(jí)培訓(xùn) 下一篇:蘇州JAVA高級(jí)培訓(xùn)
蘇州JAVA

免費(fèi)體驗(yàn)課開(kāi)班倒計(jì)時(shí)

11: 41: 09

稍后會(huì)有專業(yè)老師給您回電,請(qǐng)保持電話暢通

咨詢電話:13013833891

校區(qū)導(dǎo)航

1個(gè)校區(qū)

蘇州三網(wǎng)IT教育
推薦機(jī)構(gòu) 全國(guó)分站 更多課程

今日已有25人申請(qǐng),本月限額500

申請(qǐng)?jiān)嚶?tīng)名額

已有10254人申請(qǐng)免費(fèi)試聽(tīng)

01電話咨詢 | 13013833891

QQ:1413838287
加盟合作:0755-83654572