1. 单例模式之饿汉模式:
//创建一个静态的私有的对象
private static Singleton singleton=new Singleton();
//私有的构造器
private Singleton() {
}
//静态的方法获得对象
public static Singleton getSingleton() {
return singleton;
}
public void setSingleton(Singleton singleton) {
this.singleton = singleton;
}
2.懒汉模式;
private static Singleton2 singleton2=null;
private Singleton2() {
}
//懒汉式,在第一次调用时实例化自己
public static Singleton2 getSingleton2() {
if(singleton2==null) {
singleton2=new Singleton2();
}
return singleton2;
}
public void setSingleton2(Singleton2 singleton2) {
this.singleton2 = singleton2;
}
3.测试代码
// 测试饿汉模式
Singleton s=Singleton.getSingleton();
Singleton s1=Singleton.getSingleton();
System.out.println(s==s1);
// 测试懒汉模式
Singleton2 x=Singleton2.getSingleton2();
Singleton2 y=Singleton2.getSingleton2();
System.out.println(x==y);
4.结果: