猿问

谁能解释下为什么输出是1,0吗

class Singleton{

    private  static Singleton instance=new Singleton();

    public static int count;

    public static int count1=0;

    private Singleton(){

        count++;

        count1++;

        

    }

    public static Singleton  getInstance(){

        return instance;

    }

    

}

public class SingleTonDemo {

    public static void main(String[] args) {

        Singleton  instance=Singleton.getInstance();

        System.out.println(instance.count); //1

        System.out.println(instance.count1);//0

    }


开心每一天1111
浏览 391回答 1
1回答

慕运维8079593

因为你变量初始化顺序的问题。创建Singleton对象,此时count,count1都为1private static Singleton instance = new Singleton();静态初始化count1,这里又将count1赋值为0public static int count1 = 0;你想要2个都得1将instance初始化放置在count1下面即可。public static int count;    public static int count1 = 0;     private static Singleton instance = new Singleton();
随时随地看视频慕课网APP

相关分类

Java
我要回答