单例模式 java代码
时间: 2023-10-01 11:05:04 浏览: 38
public class Singleton {
private static Singleton instance;
private Singleton() {
// Private constructor to prevent instantiation from outside
}
public static Singleton getInstance() {
// Lazily instantiate the singleton instance (if not already done)
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
相关问题
单例模式java实例代码
以下是一个简单的单例模式Java实例代码:
```
public class Singleton {
private static Singleton instance;
private Singleton() {
// 构造方法私有化,防止外部实例化
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在这个示例中,我们创建了一个名为“Singleton”的类,并将其构造函数私有化,以防止外部实例化该类。我们还声明了一个名为“instance”的静态变量,它将存储类的唯一实例。在“getInstance()”方法中,我们检查实例是否已经创建,如果没有,则创建它并返回它。这确保了我们始终只有一个类的实例。
单例模式java浅克隆代码
以下是单例模式Java浅克隆代码的例子:
```java
public class Clazz implements Cloneable {
private static Clazz clazz = new Clazz();
private Clazz() {}
public static Clazz getInstance() {
return clazz;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
// 测试
public static void main(String[] args) throws Exception {
Clazz clazz1 = Clazz.getInstance();
Clazz clazz2 = (Clazz) clazz1.clone();
System.out.println(clazz1 == clazz2); // true
}
}
```
需要注意的是,由于单例模式的特殊性,我们需要重写`clone()`方法并将其访问修饰符改为public,否则会抛出`CloneNotSupportedException`异常。在`clone()`方法中,我们直接调用`super.clone()`即可实现浅克隆。最后在测试中,我们可以看到`clazz1`和`clazz2`是同一个对象,因此输出结果为`true`。