指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误
饿汉式
HungrySingleton.java
public class HungrySingleton {
public static volatile HungrySingleton instance = new HungrySingleton();
public HungrySingleton() {
System.out.println("孙悟空出生");
}
public static synchronized HungrySingleton getInstance(){
return instance;
}
public void getName(){
System.out.println("我是美猴王");
}
}
main
HungrySingleton wk1=HungrySingleton.getInstance();
wk1.getName();
HungrySingleton wk2=HungrySingleton.getInstance();
wk2.getName();
if (wk1==wk2){
System.out.println("他们都是美猴王");
}else {
System.out.println("他们其中一个是假的");
}
运行效果
此为饿汉式单例模式,它的特点是在方法外把对象实例化,就像一个饥肠辘辘的流浪汉,还没有把他的汉堡打包好,就直接咬了一口,官方释义可以网上搜索
public static volatile HungrySingleton instance = new HungrySingleton();
关键在于这句话,定义一个