A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guobin_lu 中级黑马   /  2013-3-30 16:33  /  989 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. sealed class Earth
  2.     {
  3.         //static的赋值语句值运行一次(在类第一次加载的时候)
  4.         //只运行一次
  5.         private static Earth instance = new Earth();

  6.         public static Earth GetEarth()
  7.         {
  8.             //return new Earth();
  9.             return instance;
  10.         }

  11.         //1、把构造函数private。(防止外部调用构造函数创建对象)
  12.         //2、声明一个静态的字段,初始化一个实例。(提供对象的唯一实例)
  13.         //3、编写一个静态方法或者静态属性,返回那个唯一的实例
  14.         private Earth()
  15.         {
  16.         }
  17.         public int Population { get; set; }
  18.     }
复制代码
怎样判断  每次调用的是同一个实例

3 个回复

倒序浏览
用hashcode判断,因为每一个实例都会有一个唯一的hanscode();不存在两个不同的实例指向一个内存地址...
回复 使用道具 举报
举个例子吧:
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("调用不是同一个对象");
       }       
               
  }  
输出结果:调用的是同一个对象
回复 使用道具 举报
使用object.referenceEquals(obj1,obj2)判断是否是同一个对象;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马