21xrx.com
2025-04-21 18:54:14 Monday
文章检索 我的文章 写文章
Java面试常考题:如何实现Java中的单例模式
2023-06-12 10:16:56 深夜i     14     0
Java 面试 单例模式

单例模式是Java中常用的设计模式之一,它可以保证一个类只有一个实例对象,并且提供全局访问点。实现单例模式有多种方式,本文将介绍三种常见的实现方式。

1. 饿汉式单例模式

饿汉式是最基本的单例模式实现方式之一,在类加载的时候就会创建实例对象。在使用的时候直接返回已经创建的实例对象即可。

public class Singleton {
  private static Singleton instance = new Singleton();
  private Singleton() {}
  public static Singleton getInstance()
    return instance;
  
}

2. 懒汉式单例模式

懒汉式是延迟初始化实例对象的单例模式实现方式,只有在使用的时候才会创建实例对象。需要注意线程安全的问题,在多线程环境下需要进行同步处理。

public class Singleton {
  private static Singleton instance = null;
  private Singleton() {}
  public synchronized static Singleton getInstance() {
    if (instance == null) {
      instance = new Singleton();
    }
    return instance;
  }
}

3. 双重检验锁式单例模式

双重检验锁式是懒汉式单例模式的改进版,通过在同步块中进行多次判断可以提高性能。需要注意使用volatile关键字和synchronized关键字保证线程的可见性和同步性。

public class Singleton {
  private static volatile Singleton instance = null;
  private Singleton() {}
  public static Singleton getInstance() {
    if (instance == null) {
      synchronized(this) {
        if (instance == null) {
          instance = new Singleton();
        }
      }
    }
    return instance;
  }
}

通过以上三种实现方式,我们可以看到单例模式的应用在Java编程中是非常广泛的。在面试中常常会有相关的问题,需要掌握单例模式的基本原理和实现方法,能够熟练运用单例模式进行编程。

  
  

评论区