Java中多个类的静态实例?

时间:2017-02-24 08:28:52

标签: java memory static

我是新的请不要介意,如果你发现问题愚蠢。我正在搞乱单身代码。我改变了一点(我的问题与单身无关,是的我已经删除了单实例检查)。我的问题是虽然java中的类实例只能是一个为什么输出中有两个静态类“instance”(参见hash)。我知道“new”关键字会给出一个新的内存地址(那就是用哈希打印的内容)但是isn' t静态类实例应该是一个?所以我得到两个哈希用于打印对象实例,静态变量k具有相同的值,这很好。

public class Singleton {

    private  static Singleton instance;
    static int k;


    public static Singleton getInstance(){
        try{
            instance = new Singleton();

            System.out.println(instance);
        }catch(Exception e){
            throw new RuntimeException("Exception occured in creating singleton instance");
        }
        return instance;
    }

    public static void main(String[] ar) {
        Singleton c1=Singleton.getInstance();
        c1.k=1;
        Singleton c2=Singleton.getInstance();
        c2.k=2;
        System.out.println(c1.k);
        System.out.println(c2.k);

    }
}

输出:

Singleton@15db9742
Singleton@6d06d69c
2
2

0 个答案:

没有答案