Java单例模式定义
单例模式是一种创建型设计模式,旨在确保一个类只有一个实例,Java单例模式无非就是单例模式的一种实现方式。
Java单例模式特点
单例模式具有以下特点:
1.单一实例
单例模式确保一个类只有一个实例存在,并且提供全局访问点以获取该实例。
2.全局访问
通过单例模式,可以在应用程序的任何地方访问该实例,而不需要通过参数传递或实例化多个对象。
3.节约资源
单例模式的实现方式支持延迟实例化,在需要使用实例时才进行实例化,避免了不必要的资源消耗。
4.高性能
由于单例模式只有一个实例存在,可以避免重复的实例化过程,提高性能和资源利用率。
Java单例模式实现
在Java中,有几种常见的实现单例模式的方式:
1.饿汉式
public class Singleton { private static final Singleton instance = new Singleton(); private Singleton() { // 私有构造函数,防止外部实例化 } public static Singleton getInstance() { return instance; } }
2.懒汉式
public class Singleton { private static Singleton instance; private Singleton() { // 私有构造函数,防止外部实例化 } public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } }
3.静态内部类实现
public class Singleton { private Singleton() { // 私有构造函数,防止外部实例化 } private static class SingletonHolder { private static final Singleton instance = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.instance; } }
4.枚举类实现
public enum Singleton { INSTANCE; // 添加其他方法和成员变量 public void someMethod() { // 实现逻辑 } }
Java单例模式应用
单例模式在许多场景中非常有用,例如:
- 当一个类的实例需要在整个应用程序中共享和被访问时。
- 当一个类的实例化过程比较昂贵,但又需要频繁地使用该实例时,可以避免多次实例化,提高性能。
- 当一个类的实例必须满足特定条件或限制时,例如数据库连接池或线程池。
mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获知最新一线技术干货!
