java单列设计模式
作者:互联网
一.什么是单例设计模式
- 保证类在内存中只有一个对象。
二.如何保证类在内存中只有一个对象
- 控制类的创建,不让其他类来创建本类的对象
- 在本类中定义一个本类的对象
- 提供公共的访问方式
三.单例的两种写法
- 饿汉式(开发用这种方式)
class Single {
private Single(){} //1.私有构造函数
private static Single s = new Single(); //2.创建本类对象
public static Single getInstance() { //3.对外提供公共的访问方法
return s;
}
}
class UseSingle {
public static void print() { //4.使用饿汉式单列
Singleton s = Singleton.getInstance();
}
}
- 懒汉式(面试写这种方式,多线程的问题)
//懒汉式,单例的延迟加载模式
class Single {
private Single(){}; //1.私有构造函数
private static Single s; //2.声明一个本类的引用
public static Single getInstance(){ //3.对外提供公共的访问方法
if(s == null){
//线程1,线程2
s = new Single();
return s;
}
}
}
- 第三种格式(很少用)
class Single {
private Single(){};
public static final Single s = new Single();//final是最终的意思,被final修饰的变量不可以被更改
}
四.饿汉式和懒汉式区别
- 线程安全
*饿汉式天生就是线程安全的,可以直接用于多线程而不会出现问题.
*懒汉式本身是非线程安全的. - 资源加载和性能
*饿汉式用空间换时间
*懒汉式用时间换空间
标签:java,单列,private,Single,static,饿汉,线程,设计模式,懒汉 来源: https://blog.csdn.net/qq_37307063/article/details/116375433