Java类类型的存储特点

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中两种单例模式小结

单例模式(Singleton Pattern)

Java单例模式实例---读取配置文件

Java单例模式(Singleton)

Java模式之单例模式

Java基础之单例模式

Java 中多线程下的单例模式

Java单例模式的几种写法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2e540550cc881661df26d3174cde03c8.html