java 单例模式 例子
时间: 2023-05-19 09:02:23 浏览: 114
一个简单的 Java 单例模式例子如下:
public class Singleton {
private static Singleton instance;
private Singleton() {
// 私有构造函数
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
在这个例子中,Singleton 类只有一个私有的构造函数,这意味着它不能被外部实例化。getInstance() 方法是公共的静态方法,它返回一个 Singleton 实例。如果该实例不存在,它将被创建。这确保了在整个应用程序中只有一个 Singleton 实例。
相关问题
java单例模式例子
Java单例模式是一种常见的设计模式,它保证一个类只有一个实例,并提供一个全局访问点。下面是一个简单的Java单例模式的例子:
```
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在这个例子中,我们使用了一个私有的静态变量 `instance` 来保存唯一的实例。我们还定义了一个私有的构造函数,以确保该类不能被实例化。最后,我们提供了一个公共的静态方法 `getInstance()` 来获取该类的唯一实例。在这个方法中,我们首先检查 `instance` 是否为 `null`,如果是,则创建一个新的实例并将其赋值给 `instance`,否则直接返回 `instance`。
单例模式例子
单例模式是一种常用的设计模式,它保证一个类只有一个实例,并提供一个全局访问点。
下面是一个简单的单例模式的例子:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在上面的例子中,我们创建了一个 Singleton 类,它只有一个私有的构造函数,以确保该类不能被直接实例化。我们使用一个静态变量 instance 来保存 Singleton 类的唯一实例。getInstance() 方法返回这个实例,如果该实例不存在,则创建一个新的实例并返回。
这个例子是线程不安全的,因为多个线程可能同时调用 getInstance() 方法并创建多个实例。为了解决这个问题,我们可以使用线程安全的双重检查锁定实现单例模式:
```java
public class Singleton {
private static volatile Singleton instance = null;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
```
在上面的例子中,我们使用 volatile 关键字确保 instance 变量被正确地初始化,同时使用双重检查锁定确保线程安全。
阅读全文