单例模式
开发中有很多类的对象我们只需要一个,例如虚拟机对象、任务管理器对象,对以上对象使用单例模式可以节约内存,提高性能
饿汉单例——通过类获取单例对象时,对象已经提前做好
懒汉单例—— 通过类获取单例对象的时候发现没有对象才会去创建一个对象
public class SingleInstanceDemo01 { public static void main(String[] args) { SingleInstance s1 = SingleInstance.getInstance(); SingleInstance s2 = SingleInstance.getInstance(); System.out.println(s1 == s2); // true } } // 饿汉单例设计一个单例模式的类 class SingleInstance01() { // 2. 定义一个静态成员变量用于存储一个对象(饿汉模式在返回对象时,对象要已经做好), public static SingleInstance01 ins = new SingleInstance01(); // 1. 把类的构造器私有,构造器只能在本类中访问!! private SingleInstance01() { } // 3. 提供一个方法返回单例对象 public static SingleInstance01 getInstance() { return ins; } } // 懒汉单例设计一个单例模式的类 class SingleInstance02() { // 2. 定义一个静态成员变量用于存储一个对象(懒汉模式不能直接创建对象,必须需要的时候才创建) public static SingleInstance02 ins; // 1. 构造器私有 private SingleInstance02() { } // 3. 通过方法返回一个对象,第一次不存在对象才创建一个返回 public static SingleInstance02 getInstance() { if ( ins == null) { // 第一次取对象,创建一个对象 ins = new SingleInstance02(); } return ins; } }