我需要知道在使用運行時初始化Java中的字符串的區別。在java中使用字符串初始化的運行時差異是什麼?
對於〔實施例:
String declare = null;
否則:
String declare = "";
我宣佈兩個字符串類型的聲明。哪一個最適合運行時聲明。
我需要知道在使用運行時初始化Java中的字符串的區別。在java中使用字符串初始化的運行時差異是什麼?
對於〔實施例:
String declare = null;
否則:
String declare = "";
我宣佈兩個字符串類型的聲明。哪一個最適合運行時聲明。
字符串是一個對象。如果將它初始化爲null,那麼您告訴編譯器,您知道這是未初始化的,並且在第一次嘗試使用該變量時應該沒有警告。除此之外,當然,您正在指向對null的引用。
如果初始化字符串爲空字符串,但是,發生以下情況:
所以,問題是,你如何處理空值或空字符串在C頌?這是什麼應該指導你的決定
現在我在我的代碼中詢問名爲'declare'的字符串refrence是否佔用內存。這是我的主要疑問。 –
感謝您的回覆 –
兩者都耗盡了指針的空間。第二種方法還需要字符串「空間」一次(和重用它爲每一個未來的宣言) – Miquel
在第一種情況下,你已經創建了一個'指針'對象(對象未被創建)null
。第二個 - 指向具有值「」(空字符串)的對象的「指針」。這些是qiute不同的東西 - 你需要決定,你需要哪一個進一步操作。
我有疑問可以聲明兩者。哪一個佔用內存,哪個不佔用內存。這是我的主要問題。 –
第一個例子不會創建一個String對象,第二個例子會。所以,以下語句:
declare.equals("some string");
會爲你的第一個例子NullPointerException異常,而不是第二。
正如@AljoshaBre所評論的,這取決於你將如何處理它。將它初始化爲空有點多餘,因爲初始值通常是這樣。空白初始化(「」)使得如果你通過一個意外的路徑(可能是好還是壞,因爲它可能會掩蓋你的代碼邏輯錯誤)不可能收到一個空指針異常。
具有初始值通常是不錯的,但讓這個它是有意義的是要使用你的字符串,而不是隨機初始值的代碼。
感謝您的回覆 –
這取決於你將要用它做什麼。 – nullpotent
你能詳細解釋一下嗎 –
取決於'null'和''''是否與使用的代碼相同或不同。 – hmjd