package 单例模式; /* * 应用场景:保证在整个应用之中某个对象的实例只有一个 * 单例模式种的《 懒汉模式》 * */ public class Singleton { //01 将构造方法私有化,外界就无法用new Singleton()的方式获得实例 private Singleton(){}; //02 申明类得唯一实例 private static Singleton instance = null; //为外界提供获得实例的方法 public static Singleton getInstance(){ if(null == instance){//懒汉模式 在Singleton类加载时并没有创建Singleton的实例,当Singleton的实例为null时才创建 instance=new Singleton(); } return instance; } }
package 单例模式; /* * 应用场景:保证在整个应用之中某个对象的实例只有一个 * 单例模式种的《 饿汉模式》 较之懒汉模式线程较安全 * */ public class Singleton1 { //01 将构造方法私有化,外界就无法用new Singleton()的方式获得实例 private Singleton1(){}; //02 创建实例 private static Singleton1 instance = new Singleton1();//饿汉模式 是在类加载时就创建实例 //为外界提供获得实例的方法 public static Singleton1 getInstance(){ return instance; } }
package 单例模式; public class Test { public static void main(String[] args) { Singleton singleton = Singleton.getInstance(); System.out.println(singleton); } }