类对象和静态属性对象谁先实例化

来源:2-1 单例模式的饿汉式实现

某某猫

2016-01-06 14:20

Singleton这个类不是静态属性instance加载之后才实例化么,可是instance又是Singleton实例化之后才加载的,那到底是哪个在先哪个在后啊

写回答 关注

3回答

  • Its_forever
    2016-01-06 14:38:56
    已采纳
    //这句话在Singleton类加载的时候就执行了,内存空间中已经有一份instance了。
    private static Singleton instance = new Singleton(); 
    //提供方法获取instance。因为前面是private修饰的,所以不能直接访问,只能提供一个方法访问。
    public static  Singleton getInstance(){
        return instance;
    }

    所以并没有冲突。你问题中的两个instance,第一是在类加载的时候就存在了,不管你用不用他。第二个是你需要用instance了,所以调用了getInstance方法。


    某某猫

    非常感谢!

    2016-01-06 14:44:45

    共 1 条回复 >

  • leowei
    2016-11-03 16:27:45

    先加载类,后实例化对象

  • VigossX
    2016-01-06 14:26:25

    不清楚你说的,但是我知道在C#里面应该是static变量时在在对象初始化之前就已经完成了

模式的秘密---单例模式

单例模式是在Java中最重要模式之一,让我们揭开单例模式神秘面纱

74409 学习 · 108 问题

查看课程

相似问题