/** 单例模式: New User(); 将一个类的构造方法设置为私有的,然后对外提供一个公共的可以调用该类的私有构造方法的接口方法 只允许被实例化出来一个对象,即在内存只存在一个类的对象,就叫做单例模式 应用场景: 如window系统的任务管理器、服务等窗口界面、聊天窗口等都采用了单例模式。 */ // 1.饿汉模式 类加载的时候,就将该类的对象实例化出来,(占用资源) 用户使用时 直接调用。 public class HungryDemo{ // private HungryDemo(){ } //static 修饰的变量,就是全局变量,在内存只会存在一个改变量的对象。 private static HungryDemo hungry = new HungryDemo(); //提供对外部的访问方法。 public static HungryDemo getInstance(){ return hungry; } } /* 一、懒汉模式: 懒汉式 的单例模式的实现: 就是在类加载的时候,没有实例化该类的对象, 特点:节省内存的空间 , 效率相对较低。 */ public class StarvingDemo{ private StarvingDemo(){ } // 先给他一个空值 private static StarvingDemo s=null; public static StarvingDemo getInstance(){ if( null == s ){ s = new StarvingDemo(); }else{ System.out.println("内存中已经有过这个对象。"); } return s; } }