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