
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睿哥
10年+一线大厂架构实战经验,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。