2014-01-08 67 views
-2

(分配null和不分配null) 在java中的內存和所有的區別是什麼?分配null和不分配null有什麼區別?

String str;  
String str = null; 
+3

@TheLostMind只有局部變量才爲真。類成員自動初始化爲空值 – Blackbelt

+0

@blackbelt - 看起來不像類/實例級別聲明...所以我認爲我只是給「本地」或「方法」級範圍答案.. :) – TheLostMind

+0

嗯,我不要這個問題應該冷靜下來。 –

回答

2

如果String str;是一個局部變量(不是類成員),它不會被初始化。編譯將失敗,並且str未初始化。

如果str是一個類的實例或靜態成員,則其默認值爲null,因此沒有區別。

...就內存和所有?

沒有什麼區別。

0
1. Inside a method if the variable is a local variable : 

在編譯器會拋出錯誤,指出海峽未初始化(編譯時)...在第二第一種情況下,它不會......除此之外,沒有任何區別...

2. If str is at class level : 

這沒有什麼區別(感謝@Ruchira這個..)

0

如果它是一個類變量,沒有區別。如果它是一個本地/方法變量,那麼如果僅執行String str;,並且如果稍後嘗試使用str(因爲它未初始化),則會發生編譯時錯誤。

0

如果您正在使用String str;內部方法然後當您嘗試使用str而不初始化它時,我們會收到編譯錯誤。但是當你宣佈海峽作爲一個實例變量,即使艱難,如果你不初始化它的默認的構造函數將實例變量海峽初始化爲因爲str爲String類型的這是一個非原始數據類型 java中的數據類型。

相關問題