Singleton:
package com.aurora.demo;
public class Singleton {
// 私有化构造方法,无法直接new
private Singleton() {}
// 单例懒汉模式
private static Singleton singleton;
public static synchronized Singleton getInstance() {
if (singleton == null) {
// return new Singleton();
return singleton = new Singleton();
}
return singleton;
}
// 单例饿汉式
private static Singleton singleton = new Singleton();
public static Singleton getInstance(){
return singleton;
}
// 双重检查锁
private volatile static Singleton singleton;
public static Singleton getInstance(){
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
}