单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
package singleton;
/**
* 单例模式(Singleton)
* Singleton类
*/
/* 1.懒汉式 */
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
/* 2.多线程 */
/*public class Singleton {
private static volatile Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}*/
/* 3.饿汉式 */
/*public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}*/
package singleton;
/**
* 单例模式(Singleton)
* 客户端main方法
*/
public class Client {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if (s1 == s2) {
System.out.println("两个对象是相同的实例。");
}
}
}