【面试题】java类加载机制探索
面试题一:
class SingleTon {
private static SingleTon singleTon = new SingleTon();
public static int count1;
public static int count2;
private SingleTon() {
count1++;
count2++;
}
public static SingleTon getInstance() {
return singleTon;
}
}
public class Test {
public static void main(String[] args) {
SingleTon singleTon = SingleTon.getInstance();
System.out.println("count1=" + singleTon.count1);
System.out.println("count2=" + singleTon.count2);
}
}
经常看到这么一句话:这是一个单例模式,通过classLoader机制避免多线程同步的问题。
先看看控制台打印结果:
count1=1
count2=1
似乎是一个显而易见的答案。OK,问题刚刚开始。