写个线程安全的饿汉式单例
时间: 2023-08-29 19:13:46 浏览: 84
好的,这是一个技术问题,我可以回答。下面是线程安全的饿汉式单例实现代码:
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
在类加载时就创建了唯一的实例,保证了线程安全。
相关问题
饿汉式单例模式如何保证线程安全
饿汉式单例模式可以通过在类加载时就创建实例的方式来保证线程安全。具体实现如下:
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
// 私有化构造函数,防止外部创建实例
}
public static Singleton getInstance() {
return instance;
}
}
```
在这个实现中,私有化了构造函数,使得外部无法直接创建实例。同时,将实例对象定义为静态变量,并且在类加载时即进行初始化,确保了在多线程环境下只会创建一个实例。
给我写一个饿汉式单例设计模式代码
饿汉式单例设计模式是一种在类加载时就创建对象实例的单例模式。以下是一个简单的饿汉式单例模式代码示例:
```
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
// private constructor
}
public static Singleton getInstance() {
return instance;
}
}
```
在这个示例中,私有静态变量 `instance` 在类加载时就被创建了,因此它是一个饿汉式单例。构造函数被标记为私有,以防止其他代码通过实例化该类来创建新的实例。公共的静态方法 `getInstance()` 返回该类的唯一实例。
在多线程环境下,饿汉式单例模式是线程安全的,因为对象实例在类加载时就已经创建了,所以不存在线程安全问题。
阅读全文