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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

下面關于java中的null和""以及不定義的理解是否正確?

下面關于java中的null和""以及不定義的理解是否正確?

慕斯709654 2018-06-28 19:26:21
String s=null;//null是未分配堆內存空間 String a;//分配了一個內存空間,沒存入任何對象 String a="";//分配了一個內存空間,存了一個字符串對象
查看完整描述

3 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

第二個錯了,String a;和String a = null;是一回事。

另外“分配”這詞比較含糊。我們可以說
String a = "";是編譯期間就已經由編譯器在常量池里為a分配了空間。
String a = foo();是foo這個函數內為a分配了空間。
String a = new String();是在運行的時候,動態地為a分配了空間。


查看完整回答
反對 回復 2018-07-13
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

string a; 其實就是聲明了"a" 在內存中只創建引用卻沒有分配空間 沒有任何指向 直接引用會報錯 聲明在類中 如果類有構造方法 這個時候會給
“a”賦初始值 此時string a等價于 string a=null
string a=null 在內存中創建引用并且是生成了一個大小為“0”的空間的 但是沒有任何指向 如果不引用的話 最后會被java的回收機制回收的
string a = “”; 聲明并賦值 內存中創建引用并且分配空間 且有所指向

從實際的角度來說 全局變量可以只聲明不賦值 比如說實體類的屬性 而局部變量是應該聲明并且賦初始值的


查看完整回答
反對 回復 2018-07-13
  • 3 回答
  • 0 關注
  • 147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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