黑马程序员技术交流社区
标题:
单例设计模式内存占用情况
[打印本页]
作者:
殷士剑
时间:
2012-11-15 21:30
标题:
单例设计模式内存占用情况
本帖最后由 殷士剑 于 2012-11-18 20:18 编辑
我们知道在单例模式中有一个指向自身的私有静态对象引用,那么它在内存中是怎样表示的呢?
private static Singleton instance = new Singleton();
作者:
王玮
时间:
2012-11-15 21:50
在方法区中,有一个Singleton 类型的引用instance 指向 ,堆内存中new Singleton()的地址。。
作者:
陈龙
时间:
2012-11-16 12:23
class Singleton
{
//在内部产生本类的实例化对象,将属性封装
private static Singleton instance = new Singleton();
private Singleton(){} //此处将构造方法进行封装
public static Singleton getInatance() //通过静态方法取得Singleton类的实例
{
return instance;
}
}
public class SingleDemo
{
public static void main(String args[])
{
Singleton s1 = Singleton.getInstance(); //访问类中的静态方法,取得对象实例
Singleton s2 = Singleton.getInstance();
}
}
以上程序中虽然声明了2个Singleton对象,但是实际上所有的对象都只使用instance的引用,即不管外面如何使用,最终结果只有一个实例化对象存在,内存占用情况如下图所示
1.jpg
(26.83 KB, 下载次数: 16)
下载附件
2012-11-16 12:22 上传
作者:
殷士剑
时间:
2012-11-18 20:17
谢谢大家!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2