常见单例模式详解-懒汉式

时间:2024-02-17 18:38:18
public class Singletion {
    
    private  Singletion() {}

    private static Singletion mInstance;

    public static synchronized Singletion getInstance() {
        if (mInstance == null) {
            mInstance = new Singletion();
        }
        return mInstance;
    }
}

该类在调用getInstance的时候(使用)才初始化,但这里加了synchronized关键字,就变成了一个同步方法。相较于饿汉式的“空间换时间”特点,懒汉式是“时间换空间”。
由于在使用时才会进行实例化,可以说节省了系统资源(优点);
但每次调用getInstance都会同步一次,浪费系统资源(缺点)。