单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
特点:
1.单例模式里只能有一个实例
2.单例模式必须创建自己唯一的实例
3.单例模式必须给其他的对象提供这一实例
创建单例模式:
1.懒汉式单例
public class Singleton { private Singleton() {} private static Singleton single=null; //静态工厂方法 public static Singleton getInstance() { if (single == null) { single = new Singleton(); } return single; } }
懒汉式单例不具有线程安全 但是节省内存因为只有在调用 getInstance 的时候才会创建一个实例 这样在调用加载的时候就会慢一点
2.饿汉式单例
public class Singleton1 { private Singleton1() {} private static final Singleton1 single = new Singleton1(); //静态工厂方法 public static Singleton1 getInstance() { return single; } }
饿汉式单例在创建的时候就写好一个静态对象可以以后直接使用 加载的时候会快一点 但是因为不管有没有使用到这个实例都是创建好的了 所以会比饿汉式单例占用内存 && 饿汉式单例具有线程安全
(还有一个“登记式单例” 好像不是很常用 8 那就先不写了)
因为昨天被叫更改 spring 配置优化代码性能然后我 改的乱七八糟 被教育 spring 维护简单好操作 让我去康康自己手搓维护一个实例是有多麻烦 好的 get!