- 饿汉式:在类加载时就创建单例实例,线程安全。代码如下:
java
public class Singleton {
// 私有静态实例
private static final Singleton instance = new Singleton();
// 私有构造函数
private Singleton() {}
// 公共访问方法
public static Singleton getInstance() {
return instance;
}
}
- 懒汉式:在第一次使用时才创建实例。在多线程环境下,若不进行同步处理会有线程安全问题。代码如下:
java
public class Singleton {
// 私有静态实例
private static Singleton instance;
// 私有构造函数
private Singleton() {}
// 公共访问方法
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}