单例一当类加载过程中执行到第一条语句时,构建完对象,此时类应该没有加载完成,只是此时优先执行了构造方法,即
counter1++;
counter2++;
System.out.println(counter1);故counter1打印1,
但是还有静态成员变量没加载,继续在方法区(为什么我喜欢叫代码区- -)加载
public static int counter1=6;
public static int counter2 = 0;此时类完成加载,返回main主方法
主方法继续 System.out.println("counter1=" + singleton.counter1);
System.out.println("counter2=" + singleton.counter2);
故counter1打印6,counter2打印0
关于单例2,我的意思和你没什么出入啊?。。。。突出以下我的重点,只要加载类,静态成员变量与静态代码块一定会被加载,至于静态变量赋没赋值,看实际语句,就以这单例1和2,
public static int counter1=6;
public static int counter2 =0;这里明显赋值了,所以此时counter1,2会有值
而我们两的分歧是这里面有先后顺序?我还是跟着代码走,第一行是什么,就执行什么,执行完,就接着第二行作者: 姓名长度不符 时间: 2013-3-17 13:45
版主明显不想告诉我们{:soso_e127:}