這期內(nèi)容當(dāng)中的小編將會給大家?guī)碛嘘P(guān)java的String類中直接賦值和構(gòu)造方法的區(qū)別,以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

區(qū)別:
直接賦值:只會開辟一塊堆內(nèi)存空間,并且該字符串對象可以自動保存在對象池中以供下次使用。
構(gòu)造方法:會開辟兩塊堆內(nèi)存空間,其中一塊成為垃圾空間,不會自動保存在對象池中,可以使用intern()方法手工入池。
直接賦值:

常量優(yōu)化機制:
String類的設(shè)計使用了共享設(shè)計模式。
在JVM底層實際上會自動維護一個對象池(字符串對象池),如果現(xiàn)在采用了直接賦值的模式進行String類的對象實例化操作,那么該實例化對象(字符串內(nèi)容)將自動保存到這個對象池之中。
如果下次繼續(xù)使用直接賦值的模式聲明String類對象,此時對象池之中如若有指定內(nèi)容,將直接進行引用;
如若沒有,則開辟新的字符串對象而后將其保存在對象池之中以供下次使用所謂的對象池就是一個對象數(shù)組(目的就是減少開銷)
構(gòu)造方法賦值:
類對象使用構(gòu)造方法實例化是標(biāo)準(zhǔn)做法。
String str = new String("hello");通過分析可知,如果使用String構(gòu)造方法就會開辟兩塊堆內(nèi)存空間,并且其中一塊堆內(nèi)存將成為垃圾空間。除了這一缺點之外,也會對字符串共享產(chǎn)生問題。
因此,一般會采取直接賦值的方式。
上述就是小編為大家分享的java的String類中直接賦值和構(gòu)造方法的區(qū)別了,如果您也有類似的疑惑,不妨礙參照上述分析進行理解。如果想了解更多相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊。
網(wǎng)頁標(biāo)題:java的String類中直接賦值和構(gòu)造方法的區(qū)別-創(chuàng)新互聯(lián)
文章分享:http://chinadenli.net/article10/didddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容