标签:创建多个对象 初始化 tar lang nal 使用 线程 序列 提高
单例模式是指确保一个类只有一个唯一实例,并且提供一个全局的访问点。
public class Singleton {
// 静态成员变量
private static Singleton instance = new Singleton();
// 当类的构造函数为私有时,只能在本类实例化该类的对象。
private Singleton(){
}
// 提供一个公共的静态方法返回单一实例
public static Singleton getInstance(){
return instance;
}
}
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
public class Singleton {
private volatile static Singleton instance;
private Singleton (){}
public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return instance;
}
}
public class Singleton {
private Singleton (){}
// 静态内部类
private static class SingletonHolder (){
public static final Singleton INSTANCE = new Singleton();
}
// Singleton 类被装载了,instance 不一定被初始化。因为 SingletonHolder 类没有被主动使用,只有通过显式调用 getInstance 方法时,才会显式装载 SingletonHolder 类,从而实例化 instance。
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
public enum Singleton {
INSTANCE;
}
标签:创建多个对象 初始化 tar lang nal 使用 线程 序列 提高
原文地址:https://www.cnblogs.com/xiao-lei/p/12590486.html