黑马程序员技术交流社区
标题:
单例模式问题
[打印本页]
作者:
guobin_lu
时间:
2013-3-30 16:33
标题:
单例模式问题
sealed class Earth
{
//static的赋值语句值运行一次(在类第一次加载的时候)
//只运行一次
private static Earth instance = new Earth();
public static Earth GetEarth()
{
//return new Earth();
return instance;
}
//1、把构造函数private。(防止外部调用构造函数创建对象)
//2、声明一个静态的字段,初始化一个实例。(提供对象的唯一实例)
//3、编写一个静态方法或者静态属性,返回那个唯一的实例
private Earth()
{
}
public int Population { get; set; }
}
复制代码
怎样判断 每次调用的是同一个实例
作者:
刘胜寒
时间:
2013-3-30 16:36
用hashcode判断,因为每一个实例都会有一个唯一的hanscode();不存在两个不同的实例指向一个内存地址...
作者:
_王涛
时间:
2013-3-30 17:41
举个例子吧:
class DanLi{
private DanLi(){}
private static final DanLi dl=new DanLi();
public static DanLi getIncetance(){
return dl;
}
}
public class A{
public static void main (String [] args)
{
int a= DanLi.getIncetance().hashCode();
int b= DanLi.getIncetance().hashCode();
if(a==b)
System.out.println("调用的是同一个对象");
else{
System.out.println("调用不是同一个对象");
}
}
输出结果:调用的是同一个对象
作者:
曾玉锋
时间:
2013-3-30 22:06
使用object.referenceEquals(obj1,obj2)判断是否是同一个对象;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2