前言
兄弟姐妹们,今天开始继续讲Java多线程,不过今天不直接讲,先从设计模式中最常见的单例模式讲起,然后在讲Java的内存模型JMM等等。
单例模式
既然讲到了单例模式,我们就顺便复习一下中最基础的设计模式。
单例模式顾名思义,也就是方法类只会初始化一次,至于什么时机初始化就分为饿汉式和懒汉式,Spring的bean
默认都是单例的。下面用代码讲讲。
最基本就是懒汉式,就是我啥也不管,直接赋值初始化。
public class LazySingleton {
// 私有构造类,没有其他方式初始化
private LazySingleton() {
}
private final static HungrySingleton instance = new LazySingleton();
public static LazySingleton getInstance() {
return instance;
}
}
懒汉式有个缺点就是可能方法不会被调用,但是又消耗资源去初始化。有另一种就是调用的时候才会初始化,这也就叫饿汉式。
public class HungrySingleton {
private static HungrySingleton instance;
// 私有构造类,没有其他方式初始化
private HungrySingleton () {
}
public static HungrySingleton getInstance()