1.介绍单例模式之前我们先看什么是模式?
所谓模式就是一种规定好的范例,用白话讲就是套路,在java中遵循某个模式会让你的代码更加规范避免一些自己没有考虑到的错误。
2.再说什么是单例模式?
单例模式(singleton pattern)是java一种较为简单的设计模式,这中类的设计模式属于创建模式,它提供了一种创建对象的最佳方式,单例模式是指一个单一的类,该类负责自己创建对象,并确保只能创建出一个对象,并对外提供访问这个唯一的对象的方法。外部可以直接访问,而不需要再构造对象。
注意:
1.单例类只能由一个实例。
2.单例类必须自己创建这个实例。
3.必须给其他所有对象提供这一实例类。
单例模式大致上可以分为两种实现模式。
一、饿汉模式——在类加载时就创建对象,所以类加载过程慢,但调用速度快
/**
* 单例模式-饿汉模式-一开始就构造一个对象,等着被调用。
* 没有线程安全问题,天生线程安全,类的加载只有一次,对象只有一份,多线程只是调用了多次get方法。
*/
public final class SingletonStarve {
//final关键字修饰这个类,保证了该类不能再被继承,通过子类去构造对象。
//定义一个引用,来指向这个类唯一对象的地址。
//final 修饰保证了原子性
private static final SingletonStarve instance;
//静态关键字 static 保证了它只能被new一次
static {
instance=new SingletonStarve();
}
//通过调用getInstance方法返回这个类的唯一对象
public static SingletonStarve getInstance(){
return instance;
}
//防君子不妨小人,为了防止误用,把构造方法写为private
private SingletonStarve() {
}
}
调用饿汉模式的方法是
public