java单例静态内部类
时间: 2023-09-13 09:05:13 浏览: 129
Java单例的静态内部类实现方式,也称为“静态内部类单例模式”,是一种线程安全的单例实现方式。它的特点是:在Singleton类被加载时,静态内部类SingletonHolder没有被加载进内存,只有当调用getInstance()方法时,才会加载SingletonHolder类,从而初始化instance对象。
下面是一个示例代码:
```
public class Singleton {
private Singleton() {}
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
```
在上述代码中,SingletonHolder是一个静态内部类,它包含一个静态的、final的Singleton实例。getInstance()方法返回的是SingletonHolder的INSTANCE,这是一个静态属性,在第一次获取时,会触发SingletonHolder类的加载,从而创建Singleton实例。
由于静态内部类只会被加载一次,所以这种方式实现的单例模式是线程安全的。同时,它也不需要使用synchronized或者volatile等关键字,因此效率较高。
需要注意的是,这种方式实现单例模式,也需要将构造函数声明为私有的,防止从外部直接创建实例。
阅读全文