package com.test; public class Singleton { /** * 私有一个静态类为null,返回的时候判断下是否为null * 为null说明没有实例,创建一个赋值给静态变量然后返回这个静态变量, * 需要的注意的是,是返回这个静态变量,而不是返回创建的实例。 */ private static Singleton singleton = null; //将构造函数私有化是为了不让其他地方new本类 private Singleton() { } /** * 单例一般用于线程,所以加上 synchronized 保证统一 * @return */ public static synchronized Singleton getSingleton() { if (singleton == null) { singleton = new Singleton(); //这里需要注意,返回的是成员属性,而不是创建的实例 return singleton; } else { return singleton; } } }