单例类(Java版)

来源:互联网 发布:java并发编程面试题 编辑:程序博客网 时间:2024/06/03 18:56

1. 问题描述

单例类是指一个最多只能创建一个实例(对象)的类。

根据上述要求,有以下解决方案:

  • 该类的对象只能在类中初始化,即将类的构造器用private修饰;
  • 需要提供一个public方法供外部访问,且该方法为类方法,即用static修饰;

2. 具体实现

class Singleton {    private static Singleton instance;    private Singleton() {} // 构造函数初始化    public static Singleton getInstance() {        if (instance == null) {            instance = new Singleton();        }        return instance;     }}public class SingletonTest {    public static void main(String[] args) {        Singleton s1 = Singleton.getInstance();        Singleton s2 = Singleton.getInstance();        System.out.println(s1 == s2); // 输出true则表明两者为同一个对象    }}