一、单例模式之饿汉模式
package com.singleton;
public class SingletonHungry {
private static SingletonHungry singletonHungry = new SingletonHungry();
private SingletonHungry() {}
public static SingletonHungry getInstance() {
return singletonHungry;
}
}
二、懒汉模式
package com.singleton;
public class SingletonLazy {
private static SingletonLazy singletonLazy;
private SingletonLazy() {}
public synchronized static SingletonLazy getInstance() {
if(singletonLazy == null) {
singletonLazy = new SingletonLazy();
}
return singletonLazy;
}
}
三、测试
package com.singleton;
public class Test {
public static void main(String[] args) {
SingletonHungry singletonHungry1 = SingletonHungry.getInstance();
SingletonHungry singletonHungry2 = SingletonHungry.getInstance();
System.out.println(singletonHungry1 == singletonHungry2);
SingletonLazy singletonLazy1 = SingletonLazy.getInstance();
SingletonLazy singletonLazy2 = SingletonLazy.getInstance();
System.out.println(singletonLazy1 == singletonLazy2);
}
}
四、结果
true
true