单例:饿汉式和懒汉式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_43765564/article/details/89608158
package jing.able;

/**
 * @author: panjing
 * @describe: 单例
 * @date: 2019/4/25
 * @time: 19:56
 */

/**
 * 单例:
 * 一个类只有一个实例化对象
 * 1.构造方法私有
 * 2.提供一个静态方法用于返回对象
 * 3.多次调用静态方法的对象必须是同一个
 * 4.定义一个静态的属性对象表示当前类的对象
 */
public class SingletonPattern {
    public static void main(String[] args) {
        SingletonA singletonA = null;
        singletonA = singletonA.getInstance();
    }
}
//饿汉式单例:
// 立即实例化
class SingletonA{
    public static final SingletonA INSTANCE = new SingletonA();
    private SingletonA(){
    }
    public static SingletonA getInstance(){
        return INSTANCE;
    }
    public void print(){
        System.out.println("hahaha A");
    }
}
//懒汉式单例
//延迟实例化对象
class SingletonB {
    private static SingletonB instance;
    private SingletonB() {
    }
    public static SingletonB getInstance() {
        if (instance == null) {
            instance = new SingletonB();
        }
        return instance;
    }
    public void print() {
        System.out.println("hahaha B");
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43765564/article/details/89608158