一、单例模式之饿汉模式
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