物件指定性與相等性
發表於 : 2014年 7月 31日, 16:37
比較物件實質內容值要使用equals(),別使用 == 或 != (== 或 != 是比較物件參考或參考物件名稱 Integer c1)
Java 並非完全的物件導向程式語言,要區別 Primitive Type 與 Class Type 的不同。
我們沒什麼不同
當你宣告一個基本型態變數並指定值時,例如:
int x = 1;
JVM會在記憶體的stack區開設一塊空間,儲存1這個值
當你宣告一個參考名稱,並建立一個物件指定給該名稱時,例如:
Object o = new Object();
使用new時,JVM會在heap區取得一個空間來建立物件,你將物件指定給參考名稱,表示你將物件的記憶體位址設定給參考名稱,也就是JVM會在stack開設一塊空間,儲存這個記憶體位址
Java中的參考與C++中的參考指的並不是相同的東西
實際上,Java 建構式是有傳回值的,傳回值就是物件在記憶體中的位址,只不過你不能處理這個位址資訊罷了。
Java 並非完全的物件導向程式語言,要區別 Primitive Type 與 Class Type 的不同。
我們沒什麼不同
當你宣告一個基本型態變數並指定值時,例如:
int x = 1;
JVM會在記憶體的stack區開設一塊空間,儲存1這個值
當你宣告一個參考名稱,並建立一個物件指定給該名稱時,例如:
Object o = new Object();
使用new時,JVM會在heap區取得一個空間來建立物件,你將物件指定給參考名稱,表示你將物件的記憶體位址設定給參考名稱,也就是JVM會在stack開設一塊空間,儲存這個記憶體位址
Java中的參考與C++中的參考指的並不是相同的東西
實際上,Java 建構式是有傳回值的,傳回值就是物件在記憶體中的位址,只不過你不能處理這個位址資訊罷了。