关于java单例设计模式
什么是单例设计模式,顾名思义:单例设计模式就是确保一个类里只有一个实例的设计模式,这也是这个设计模式的优点,这个类里只会有一个实例。
它的步骤:
1>我们开发一个类,构造方法私有化,保证不能在程序中随意new对象
2>在类里定义一个静态变量,实例化一个该类的实例(外界在调方法时,只能得到一个实例,是一个单例的类)
两种形式:
1.饿汉式单例类
public class Cat{
//static属性保证了只持有一个Cat实例,每次调用静态方法,都返回同一个Cat实例的引用
private static Cat cat = new Cat();
//私有化构造方法
private Cat(){
} //提供静态的返回Cat实例的方法
public static Cat getInstance(){
return cat;
}
}
2.懒汉式单例(什么时候调用静态方法获取实例,什么时候在创建对象)
public class Cat{
// static属性:只存一份
private static Cat cat;
// 私有化构造方法
private Cat() {
}
//提供静态的返回Cat实例的方法
public static Cat getInstance() {
if (cat == null) {
synchronized (Cat.class) {
if (cat == null) {
cat = new Cat();
}
}
}
return cat;
}
}
注:懒汉式单例在多线程环境下不安全,要加同步锁synchronized,然后在同步代码块中加一层判断,双重判定锁j就可以啦。
原文:https://www.cnblogs.com/xingani-0202/p/10452784.html