问题来源 当我们想在程序中表示的东西只有一种情况时,就会有“只能创建一个实例”的需求。当存在多个实例时,会有意想不到的bug,如果只有一个实例就可以放心了。 方式 public class Singleton { private final static Singleton ourInstance = new Singleton(); public static Singleton getInstance() { return ourInstance; } private Singleton() { } } 使用private static final 来指定本类对象,私有,不可被修改,static静态,只实例化一次把构造方法设置为私有,不允许外部类来新建本类对象使用public static 的get方法获取本类对象 说明 由于使用单例模式建立的对象是唯一确定的,所以使用=号来判断get出的对象是相同的。 public class Main { public static void main(String[] args){ Singleton mainTest = Singleton.getInstance(); Singleton test = Singleton.getInstance(); // true System.out.println(mainTest == test); } } 暂时未考虑多线程的问题,后续补充上。