懒汉式 public class Singleton{ //@单例类只能有一个实例 //@单例类必须自行创建这个实例 //@单例类必须给所有对象提供这一个实例//必须向整个系统提供这个这个实例 private static Singleton uniqueInstance = null; private Singleton(){ System.out.println("懒汉式单例---"); } public static Singleton getInstance(){ if(uniqueInstance == null){ uniqueInstance = new Singleton(); } return uniqueInstance; } } 懒汉式(同步否则有危险) public class Singleton{ //@单例类只能有一个实例 //@单例类必须自行创建这个实例 //@单例类必须给所有对象提供这一个实例//必须向整个系统提供这个这个实例 private static Singleton uniqueInstance = null; private Singleton(){ System.out.println("懒汉式单例---"); } public static synchronized Singleton getInstance(){ if(uniqueInstance == null){ uniqueInstance = new Singleton(); } return uniqueInstance; } } 饿汉式 public class Singleton { private Singleton() { System.out.println("饿汉式单例---"); } private static Singleton instance = new Singleton(); public static Singleton getInstance(){ return instance; } } 验证: Singleton st1 = Singleton.getInstance(); Singleton st2 = Singleton.getInstance(); System.out.println(st1==st2); 结果:true