单例模式 demo java
时间: 2023-08-23 17:03:49 浏览: 104
下面是一个简单的饿汉式单例模式的 Java 示例代码:
```
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
在上面的代码中,Singleton 类只有一个私有的构造函数和一个静态的 instance 对象。在静态代码块中,我们实例化了这个对象。getInstance() 方法返回这个唯一的实例。
这种方式虽然非常简单,但是存在一些问题。例如,如果 Singleton 类的构造函数包含一些复杂的逻辑或者需要传入参数,那么这种方式就无法满足需求了。
下面是一个懒汉式单例模式的 Java 示例代码:
```
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在上面的代码中,getInstance() 方法在第一次调用时才会创建实例。我们使用了 synchronized 关键字来实现线程安全。但是这种方式可能会影响性能,因为每次调用 getInstance() 方法都需要进行同步。
阅读全文