- 单例模式:
单例模式是Java语言23中设计模式中最常见的一种设计模式.
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例
常用的方式:
懒汉式和饿汉式两种实现方式,各有优缺点. - 作用:
防止多个实例,创建出多个线程同时进行.例如:火车站买票,就10张票,同时100个人在买,如果不进行限制,够的票会出现负数. 又例如:办公室就一台打印机,多个同事同时要打印资料,如果不进行相应的约束,结果会是什么样? 这就是单例模式应运而生的作用;
这里只列出最常用的单例模式:
- 懒汉式:
/**
* 懒汉模式线程不安全,加锁后可以实现线程安全,下面此方法线程安全.
* 懒汉模式中单例是在需要的时候才去创建的,如果单例已经创建,
* 再次调用获取接口将不会重新创建新的对象,而是直接返回之前创建的对象。
* 如果某个单例使用的次数少,并且创建单例消耗的资源较多,那么就需要实现单例的按需创建,
* 这个时候使用懒汉模式就是一个不错的选择
* @author 狂神666
*
*/
public class Singleton{
private static Singleton instance;
private Singleton(){}
public static synchronized Singleton getInstance(){
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
- 饿汉式: