在java中,類類型變量初始化後存放的是對象的內存地址,不是對象本身,即類類型變量指向了對象的內存地址。但在java中,你沒有辦法看到對象的內存地址,通常所見到的“類型名@十六進制數”,並不是內存地址,只是該對象的散列碼的十六進制表示而已。java語言本身是沒有提供任何方法來查看內存地址的。關於加載類對象完全是由JVM來完成的,出於安全和方便的考慮,JVM管理內存對Java應用程序員是透明的。
通過下面代碼,可以大概了解類類型的存儲方式:
/**
* Comments:類類型的存儲特點
* @author 塞上名豬
* Crete Time:2013-10-5
*
*/
public class Neicun {
public static void main(String[] args) {
Neicun[] n=new Neicun[3]; //初始化了一個數組,並沒有對Neicun進行初始化
System.out.println(n[0]); //輸出null
n[0]=new Neicun(); //調用構造函數進行初始化
System.out.println(n[0]); //n[0]指向的是內存地址,但輸出的不是內存地址,只是該對象的散列碼的十六進制表示而已
Neicun m=new Neicun();
System.out.println(m); //輸出對象的散列碼的十六進制
}
}
上面這段代碼,不僅說明了類類型的存儲方式,同時反應了另一個問題:當初始化一個類類型的數組時,並沒有給數組中的類類型的每個變量初始化,只是單純的確認了數組的大小,相應的類類型變量需要另行初始化。