package mianxiangduixiang;
class Single
{
private int num;
public void setNum(int num)
{
this.num=num;
}
public int getNum()
{
return num;
}
private Single(){}
private static Single s = new Single();
public static Single getInstance()
{
return s;
}
}
class SingleDemo
{
public static void main(String[] args)
{
Single s1 = Single.getInstance();
Single s2 = Single.getInstance();
s1.setNum(23);
System.out.println(s2.getNum());
}
}
private static Single s = new Single();定义成static 那么内存中 ...
我分步骤解释一下
首先明确一点
private static Single s = new Single();因为 Single s定义为静态,所以在类加载进类存时,在堆内存中创建了一个Single对象,并且s指向 Single对象。因为构造函数定义为私有(private ),所以无法再其他类中调用次构造函数,也就是说无法再其他类中创建Single对象,所以Single对象只能在类加载的时候创建,并且只能创建一次,所以对内存中只存在唯一一个Single对象,该对象就是类加载时创建的。
作者: 邱泉 时间: 2012-7-6 00:31
我分步骤解释一下
首先明确一点
private static Single s = new Single();因为 Single s定义为静态,所以在类加载进类存时,在堆内存中创建了一个Single对象,并且s指向 Single对象。因为构造函数定义为私有(private ),所以无法再其他类中调用次构造函数,也就是说无法再其他类中创建Single对象,所以Single对象只能在类加载的时候创建,并且只能创建一次,所以对内存中只存在唯一一个Single对象,该对象就是类加载时创建的。