1.无意间的一段程序代码引起了我研究的兴趣,之前对于Java的执行机制不是很透彻,为自己充充电.
public class test {
private static test test = new test();
public static int count1;
public static int count2=0;
private test()
{
System.out.println("执行构造方法前count1=" + count1+ " count2==" + count2);
count1++;
count2=9999;
System.out.println("执行构造方法后count1=" + count1+ " count2==" + count2);
}
public static test getTest()
{
return test;
}
public static void main(String[] args) {
System.out.println("执行主方法count1=" + count1+ " count2==" + count2);
}
}
结果:
执行构造方法前count1=0 count2==0
执行构造方法后count1=1 count2==9999
执行主方法count1=1 count2==0
这是一个单例模式,首先,由于第一句是private static test test = new test();所以在初始化静态变量test时中间插入了一个构造函数,造成了count1和c