package com.zj.exercise;
/**
* 功能:单例模式
* @author zhengjiong
* time:2011-9-11
*/
public class SingletonTest {
public static void main(String[] args){
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1==s2 ? "同一个对象" : "不同的对象");
}
}
class Singleton {
//在类的内部new出该类的实例
private static Singleton singleton = new Singleton();
private Singleton(){
//防止被new出
}
public static Singleton getInstance(){
return singleton;
}
}
//第二种方式:
//这种方式可能在多线程的时候就不是一个实例了
class Singleton {
//在类的内部new出该类的实例
private static Singleton singleton;
private Singleton(){
//防止被new出
}
public static Singleton getInstance(){
if(singleton!=null){
singleton = new Singleton();
}
return singleton;
}
}