亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

String str="慕課網"; 與String str2=new String("慕課網"); 兩者之間有什么區別?

String str="慕課網";

與String str2=new String("慕課網");

兩者之間有什么區別?

正在回答

2 回答

首先明白在計算機的內存中有堆和棧兩塊空間,其中棧中存放所有對象、函數、變量等的引用;而堆中存放對象、值等。?
不管是new出的對象還是用類似String str="慕課網";這類的對象,都是放在堆中的。?

Java虛擬機為了提高字符串應用效率,提供了字符串池來保存字符串常量,str創建字符串常量"慕課網"時,虛擬機會先檢測字符串池中是否包含該字符串,如果不包含則創建該字符串常量,并將其保存在字符串池中,然后再返回。

而執行到String str2=new String("慕課網");系統會直接實例化該對象,而不會在池中查找。也不會將這個對象放在池中。?

4 回復 有任何疑惑可以回復我~
#1

AndyHT

正解!你可以試試用 == 來判斷str 和 str2兩個字符串是否相等,結果是false,它倆的地址不相等
2015-05-29 回復 有任何疑惑可以回復我~
#2

Perona 回復 AndyHT

謝謝捧場~~
2015-05-29 回復 有任何疑惑可以回復我~

用作初始化就沒有區別

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

String str="慕課網"; 與String str2=new String("慕課網"); 兩者之間有什么區別?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號