在写单例模式时应该对实例的初始化与否进行双重检查。 记住对实例的声明使用Volatile关键字,以保证单例模式是线程安全的 /** * Created by lufie on 2017/7/30. */ public class SingleInstance { public static volatile SingleInstance instance; private SingleInstance(){ } public static SingleInstance getInstance(){ if(instance==null){ synchronized (SingleInstance.class){ if(instance==null){ System.out.println("execute new method ..."); instance = new SingleInstance(); } } } return instance; } public static void main(String[] args) { SingleInstance instance = SingleInstance.getInstance(); System.out.println(instance); instance = SingleInstance.getInstance(); System.out.println(instance); } }