单例模式测试类
1 package finalsingleton; 2 3 public class Test { 4 public static void main(String[] args) { 5 System.out.println(HungrySingleton.get()); 6 System.out.println(HungrySingleton.get()); 7 System.out.println(HungrySingleton.get()); 8 System.out.println(HungrySingleton.get()); 9 10 System.out.println("懒汉。。。。。。。。。。。"); 11 System.out.println(LazySingleton.get()); 12 System.out.println(LazySingleton.get()); 13 System.out.println(LazySingleton.get()); 14 System.out.println(LazySingleton.get()); 15 System.out.println(LazySingleton.get()); 16 } 17 }
饿汉式单例模式
1 package finalsingleton; 2 /** 3 * 饿汉式单例模式 4 * @author likainian 5 * 1784186573@qq.com 6 */ 7 public class HungrySingleton { 8 //1.私有的不能被从新赋值的静态的成员变量 9 private final static HungrySingleton hun = new HungrySingleton(); 10 //2.私有化构造器,其他类不能再外部创建 11 private HungrySingleton() { 12 } 13 //3.公共的静态方法,其他类能得到这个唯一实例 14 public static HungrySingleton get() { 15 return hun; 16 } 17 }
懒汉式单例模式
package finalsingleton; /** * 懒汉式单例模式 * @author likainian * 1784186573@qq.com */ public class LazySingleton { //1.私有的静态的成员变量,需要赋值,不能final修饰 private static LazySingleton onlyone; //2.私有化构造器 private LazySingleton() { } //3.公共的静态方法,用来获得这个实例 public static LazySingleton get() { if(onlyone==null){ onlyone=new LazySingleton(); } return onlyone; } }