问答详情
源自:2-1 单例模式的饿汉式实现

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

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

提问者:某某猫 2016-01-06 14:20

个回答

  • 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方法。


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

    先加载类,后实例化对象

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

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