該如何創(chuàng)建字符串,使用“”還是構(gòu)造函數(shù)-java開發(fā)java經(jīng)驗技巧

該如何創(chuàng)建字符串,使用“”還是構(gòu)造函數(shù)-java開發(fā)java經(jīng)驗技巧

ID:30919199

大?。?8.50 KB

頁數(shù):3頁

時間:2019-01-04

該如何創(chuàng)建字符串,使用“”還是構(gòu)造函數(shù)-java開發(fā)java經(jīng)驗技巧_第1頁
該如何創(chuàng)建字符串,使用“”還是構(gòu)造函數(shù)-java開發(fā)java經(jīng)驗技巧_第2頁
該如何創(chuàng)建字符串,使用“”還是構(gòu)造函數(shù)-java開發(fā)java經(jīng)驗技巧_第3頁
資源描述:

《該如何創(chuàng)建字符串,使用“”還是構(gòu)造函數(shù)-java開發(fā)java經(jīng)驗技巧》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、該如何創(chuàng)建字符串,使用還是構(gòu)造函數(shù)-編程開發(fā)技術(shù)該如何創(chuàng)建字符串,使用“”還是構(gòu)造函數(shù)原文出處:Hollis(@Hollis_Chuang)在Java屮,冇兩種方式可以創(chuàng)建字符串:Stringx二〃abc";Stringy二newString(〃abc〃);使用雙引號和構(gòu)造函數(shù)z間到底有什么區(qū)別呢?雙引號VS構(gòu)造函數(shù)這個問題可以使用這兩個簡單代碼實例來回答:實例一Stringa二"abed";Stringb="abed";System?out.printin("a==b:〃+(a==b));//trueSystem,out?println("a.equals(b):z/+(a.equals(b

2、)));//truea==b等Ttrue?是因為x和y指向方法區(qū)中同一個字符串常量,他們的引用是相同的(二二比較的是引用)。當(dāng)相同的字符吊常量被多次創(chuàng)建時,只會保存字符吊常量的一份副本,這稱為“字符串駐留”。在Java中,所冇編譯時字符串常量都是駐留的。實例二Stringc二newString(〃abcd〃);Stringd=newString("abcd〃);Systcm.out.println("c==d:"+(c==d));//falseSystem.out?printin("c?equals(d):"+(c?equals(d)));//truec二二d等于false?是因為c和d指向堆

3、屮不同的對象。不同的對象擁有不同的內(nèi)存引用。下面圖論證了以上的結(jié)論。運行時字符串駐留運行時也會發(fā)生字符吊駐留,即使兩個字符吊是由構(gòu)造函數(shù)方法創(chuàng)建的。Stringc=newString(z,abcd,z).intern();Stringd=newString(z,abcdz/).intern();System,out.println(〃c二二d:〃+(c二二d));//trueSystem,out.printin(z/c.equals(d):〃+(c.equals(d)));//true(JDK1.7)因為字而值“abed”已經(jīng)是字符串類型,那么使用構(gòu)造函數(shù)方式只會創(chuàng)建一個額外沒有用處的對象。因

4、此,如果你只需要創(chuàng)建一個字符串,你可以使用雙引號的方式,如果你需要在堆中創(chuàng)建一個新的對象,你可以選擇構(gòu)造函數(shù)的方式。

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。