java单例设计模式
时间: 2023-11-12 16:57:58 浏览: 131
Java单例设计模式是一种常用的设计模式,它可以保证一个类只有一个实例,并提供一个全局访问点。
实现Java单例设计模式的方式有多种,其中比较常用的方式是使用静态变量和静态方法。具体实现方式如下:
```java
public class Singleton {
private static Singleton instance = null;
private Singleton() {
// 私有构造函数
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在上面的代码中,我们将构造函数设为私有,这样外部就无法通过new关键字来创建该类的实例。同时,我们定义了一个静态变量instance来保存该类的唯一实例,并提供了一个静态方法getInstance来获取该实例。在getInstance方法中,我们首先判断instance是否为null,如果为null则创建一个新的实例并赋值给instance,否则直接返回instance。
这种方式虽然简单易懂,但是在多线程环境下可能会出现问题,因为多个线程可能同时调用getInstance方法,导致创建多个实例。为了解决这个问题,我们可以使用双重检查锁定的方式来实现线程安全的单例模式。
相关问题
java单例设计模式练习题
在Java中,单例设计模式是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。这是一种创建型模式,主要用于限制系统资源的创建数量,或者为对象提供统一的行为。
下面是一个简单的Java单例模式实现(懒汉式和饿汉式)练习题示例:
**1. 懒汉式单例(线程不安全):**
```java
public class LazySingleton {
private LazySingleton() {}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
```
阅读全文