在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);          //输出对象的散列码的十六进制    }}

上面这段代码,不仅说明了类类型的存储方式,同时反应了另一个问题:当初始化一个类类型的数组时,并没有给数组中的类类型的每个变量初始化,只是单纯的确认了数组的大小,相应的类类型变量需要另行初始化。

相关博文:java类类型参数:

        java类类型变量: