关于java单例设计模式
什么是单例设计模式,顾名思义:单例设计模式就是确保一个类里只有一个实例的设计模式,这也是这个设计模式的优势,这个类里只会有一个实例。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就能够啦。对象