課程
/后端開發(fā)
/Java
/Java入門第三季
String str="慕課網(wǎng)";
與String str2=new String("慕課網(wǎng)");
兩者之間有什么區(qū)別?
2015-05-28
源自:Java入門第三季 2-4
正在回答
首先明白在計算機的內(nèi)存中有堆和棧兩塊空間,其中棧中存放所有對象、函數(shù)、變量等的引用;而堆中存放對象、值等。?不管是new出的對象還是用類似String str="慕課網(wǎng)";這類的對象,都是放在堆中的。?
Java虛擬機為了提高字符串應(yīng)用效率,提供了字符串池來保存字符串常量,str創(chuàng)建字符串常量"慕課網(wǎng)"時,虛擬機會先檢測字符串池中是否包含該字符串,如果不包含則創(chuàng)建該字符串常量,并將其保存在字符串池中,然后再返回。
而執(zhí)行到String str2=new String("慕課網(wǎng)");系統(tǒng)會直接實例化該對象,而不會在池中查找。也不會將這個對象放在池中。?
AndyHT
Perona 回復(fù) AndyHT
用作初始化就沒有區(qū)別
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
2 回答String類型的null,String(),String("");之間有什么區(qū)別?
2 回答string和stringBuilder有什么區(qū)別
4 回答super (String str);
2 回答new Student(String id , String name)
3 回答String和StringBuilder的區(qū)別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-05-28
首先明白在計算機的內(nèi)存中有堆和棧兩塊空間,其中棧中存放所有對象、函數(shù)、變量等的引用;而堆中存放對象、值等。?
不管是new出的對象還是用類似String str="慕課網(wǎng)";這類的對象,都是放在堆中的。?
Java虛擬機為了提高字符串應(yīng)用效率,提供了字符串池來保存字符串常量,str創(chuàng)建字符串常量"慕課網(wǎng)"時,虛擬機會先檢測字符串池中是否包含該字符串,如果不包含則創(chuàng)建該字符串常量,并將其保存在字符串池中,然后再返回。
而執(zhí)行到String str2=new String("慕課網(wǎng)");系統(tǒng)會直接實例化該對象,而不會在池中查找。也不會將這個對象放在池中。?
2015-05-28
用作初始化就沒有區(qū)別