C05 单例模式 饿汉式

概述

在类初始化的时候就完成单例的创建;

优点

  • 由于类在初始化的时候会有一把初始化锁,故在类初始化的时候就完成单例的创建,不会存在多线程的问题;
  • 实现简单;

缺点

  • 造成内存的占用;

饿汉式单例模式代码

  • 实例hungrySingleton可以声明成final的,final修饰的成员变量在类加载完成时就必须初始化完成,所以在static代码块中完成 hungrySingleton 的初始化;
  • 这是基础版的饿汉式实现,是没有抵御反射攻击的防御代码的;

注意:单例对象的声明必须在静态块之前,否则单例对象无法被静态块chu

public class HungrySingleton {
    
    private final static HungrySingleton hungrySingleton;
    
    static {
        hungrySingleton = new HungrySingleton();
    }
    
    private HungrySingleton() {}

    public static HungrySingleton getInstance() {
        return hungrySingleton;
    }
    
}

你可能感兴趣的:(C05 单例模式 饿汉式)