【问题标题】:same reference for multiple objects..? [duplicate]多个对象的相同参考..? [复制]
【发布时间】:2012-05-16 09:20:05
【问题描述】:

可能重复:
hash code for string objects

您好,我是 java 编程新手,我想创建多个 Myclass 的 obj,为此编写了下面的代码。为什么它会生成相同的对象

class Myclass {

        private static Myclass single;
        private Myclass() {

        }
        public static synchronized Myclass obj() {
            if (single == null) {
                single = new Myclass();
            }
            return single;
        }
    }
    public class Demo {
        public static void main(String args[]) {
            Myclass obj = Myclass.obj();
            System.out.println("one  "+obj);
            Myclass obj1 = Myclass.obj();
            System.out.println("two  "+obj1);
        }
    }

【问题讨论】:

  • @epoch 在桌子上反复刘海
  • 停止泛滥 SO 并阅读基本的 Java 事实!
  • 有人可以为 OP 推荐一个不错的初学者 Java 参考吗?

标签: java


【解决方案1】:

其实是单实例,都是同一个对象

【讨论】:

  • 但我们正在创建 Myclass 的多个对象作为 Obj,obj1
  • google“单例设计模式”
  • @user1335578 在我对您之前问题的回答中,我已经向您解释了这方面的内容。您发布了一个新问题,而不是阅读第一个问题的答案??
【解决方案2】:

您明确地将 MyClass.obj() 设计为返回一个单例,因此您不应该对返回同一个实例感到惊讶 - 因此两个引用都指向同一个对象并具有相同的哈希码。

【讨论】:

    猜你喜欢
    • 2020-10-22
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多