乐闻世界logo
搜索文章和话题

Java中的Singleton类是什么?

2月7日 12:38

Singleton 类是一种设计模式,用于确保一个类只有一个实例,并提供该实例的全局访问点。在 Java 中,Singleton 模式通常通过私有化其构造器、定义一个私有静态变量来持有单一实例,以及提供一个公共静态方法来获取该实例来实现。这样确保了无论在代码中的任何位置多少次调用这个方法,返回的都是同一个对象实例。

例如,以下是一个实现 Singleton 模式的 Java 类:

java
public class Singleton { private static Singleton instance; private Singleton() {} // 私有构造方法使得外部不能直接实例化 public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); // 实例未创建时才创建 } return instance; } }

这种实现方式称为懒汉式,它在第一次需要实例时才创建。还有另一种方式称为饿汉式,它在类被加载时就立即创建实例,如下:

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

这两种方式各有优缺点,懒汉式是延迟加载,节省资源,但可能在多线程环境下需要额外的同步处理。饿汉式是线程安全的但是不管是否使用都会创建实例,可能会造成资源浪费。

标签:Java