首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

求解—1单例模式运行顺序

2012-08-09 
求解—一单例模式运行顺序public class Singleton {(1)private static Singleton obj new Singleton()(2

求解—一单例模式运行顺序
public class Singleton {
(1)private static Singleton obj = new Singleton();
(2)public static int counter1;
(3)public static int counter2 = 1;
(4)private Singleton(){
counter1++;
counter2++;
}
(5)public static Singleton getInstance(){
return obj;
}
}

public class MyMain {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Singleton obj = Singleton.getInstance();
System.out.println("obj.counter1=="+obj.counter1);
System.out.println("obj.counter2=="+obj.counter2);

}

}

请说出(1)(2)(3)(4)(5)的运行顺序和运行结果,并说出原因

[解决办法]
(1)private static Singleton obj = new Singleton();
(2)public static int counter1; 初始默认为0
(3)public static int counter2 = 1;

(1)(2)(3)程序初始的时候就对应赋值 
(3)实例化了。。调用(4)private无参构造函数
所以counter1 = 1; counter2 = 2
(5)只是返回一个Singleton地址

热点排行