java编写三种单例模式
时间: 2023-07-05 12:25:44 浏览: 99
在 Java 中,单例模式可以通过以下三种方式来实现:
1. 懒汉式单例模式(线程不安全):
```
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
该方法的缺点是在多线程环境下,可能会出现多个实例的情况。
2. 懒汉式单例模式(线程安全):
```
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
该方法通过 synchronized 关键字保证了线程安全,但是在高并发的情况下性能较低。
3. 饿汉式单例模式:
```
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
该方法在类加载时就创建了实例,因此在多线程情况下也可以保证只有一个实例。但是如果实例的创建需要大量的时间,会导致程序启动较慢。
阅读全文