public class Singleton {
private static Singleton instance = null;
private Singleton(){
System.out.println(1);
}
synchronized public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
public class Singleton2 {
private static final Singleton2 instance = new Singleton2();
private Singleton2(){
System.out.println(2);
}
public static Singleton2 getInstance(){
return instance;
}
}
public class SingletonTest {
public static void main(String[] args){
//测试懒汉式
Singleton s11 = Singleton.getInstance();
Singleton s12 = Singleton.getInstance();
if(s11 == s12){
System.out.println("same singleton");
}else{
System.out.println("not same singleton");
}
//测试饿汉式
Singleton2 s21 = Singleton2.getInstance();
Singleton2 s22 = Singleton2.getInstance();
if(s21 == s22){
System.out.println("same singleton2");
}else{
System.out.println("not same singleton2");
}
}
}
1
same singleton
2
same singleton2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |