public class Test1 {
public static void main(String[] args) {
Singleton s = Singleton.getSingleton();
System.out.println("counter1 = "+ s.counter1);
System.out.println("counter2 = "+s.counter2);
}
}
class Singleton{
private static Singleton singleton = new Singleton();
public static int counter1;
public static int counter2 = 0;
public Singleton(){
counter1++;
counter2++;
}
public static Singleton getSingleton(){
return singleton;
}
}
public class ClassLoading {
public static void main(String args[]) {
A a = new A();
a.aDisplay();
}
}
Java面试题, 类加载器,加载顺序的问题,不太懂结果为什么是这样? 结果是1,0
答案:2 悬赏:10 手机版
解决时间 2021-03-16 19:07
- 提问者网友:且恨且铭记
- 2021-03-16 15:37
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-03-16 16:43
类加载时,按顺序执行静态成员变量初始化。
最先初始化 singleton = new Singleton(); 构造方法中 counter1++ 后 counter1 为 1,counter2++ 后 counter2 为1。
然后初始化 counter2 = 0,counter2 从 1 变成 0。
注意,public static int counter1 这是变量声明,不会像 counter2 = 0 这样在初始化阶段设成 0 。
最先初始化 singleton = new Singleton(); 构造方法中 counter1++ 后 counter1 为 1,counter2++ 后 counter2 为1。
然后初始化 counter2 = 0,counter2 从 1 变成 0。
注意,public static int counter1 这是变量声明,不会像 counter2 = 0 这样在初始化阶段设成 0 。
全部回答
- 1楼网友:行雁书
- 2021-03-16 17:41
public class bigger { public static void main(string args[]){ int a = -2147483648; int b = 2147483647; string[] strarray = {"a>=b", "a>> 63); system.out.println(strarray[i]); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯