本文内容来自慕课网系列课程,记录下学习的内容。
Java设计模式一
单例模式
有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等。如果创造出多个实例,就会导致许多问题,比如占用过多资源,不一致的结果等。
饿汉模式
饿汉模式:类加载的时候就会创建唯一的一个类实例
public class Singleton {
//1.将构造方法私有化,不允许外部直接创建对象
private Singleton() {
}
//2.创建类的唯一实例
private static Singleton instance = new Singleton();
//3.提供一个用于获取实例的方法
public static Singleton getInstance() {
return instance;
}
}
懒汉模式
懒汉模式:类加载的时候并没有去创建类的实例
public class Singleton2 {
//1.将构造方法私有化,不允许外边直接创建对象
private Singleton2() {
}
//2.声明类的唯一实例,使用private static修饰
private static Singleton2 instance;
//3.提供一个用户获取实例的方法
public static Singleton2 getInstance() {
if (instance == null) {
instance = new Singleton2();
}
return instance;
}
}
区别:
饿汉模式加载类时比较慢,但在运行时获取对象的速度比较快,线程安全
懒汉模式加载类时比较快,但在运行时获取对象的速度比较慢,线程不安全