问答详情
源自:4-9 学生选课---应用泛型管理课程 Ⅰ

java变量初始化

class Singleton {    
    private static Singleton singleton = new Singleton();    
    public static int counter1;    
    public static int counter2 = 0;    
    private Singleton() {
        counter1++;
        counter2++;
    }    
    public static Singleton getInstance() {       
         return singleton;
    }
}
public class TestSingleton {
    public static void main(String[] args) {
        Singleton s = Singleton.getInstance();
        System.out.println(Singleton.counter1);
        System.out.println(Singleton.counter2);
    }
}

输出结果是1,0

为什么

提问者:孤僻成瘾 2018-09-26 17:34

个回答

  • qq_你若安好便是晴天_23
    2018-09-26 23:15:43

    Java对于静态成员变量的初始化,分解为两步执行。

    1. 根据静态成员变量在代码中的先后次序进行声明并赋值为缺省值2. 在静态块内依次为变量进行赋值