记录一下对于单例模式的重新认识
单例模式,毋庸置疑,(这里以java语言来描述)字面意思就是在一个java进程中,只会存在一个对象实例。 单例模式主要分为4种,饿汉式,懒汉式,委托,枚举; 1.饿汉式: /** * * 测试饿汉式 * 能够保证线程的安全性,但是没有延迟加载,实例化完成后, * 如果长时间不进行使用,会造成内存空间的浪费,因为单例模式的实例中如果包含很多的静态成员变量 * 占用内存比较大,则内存空间的浪费就会非常明显。所以如果提高其性能,需要进行懒加载 * * @date 2020-01-01 * @since */ public class HungryDemo { private static byte[] bytes = new byte[1024]; public static String str = "just test"; static { System.out.println("hungry singleton"); } /** * 定义私有的构造器 */ private HungryDemo() {} /** * HungryDemo中的静态变量在类加载期间就会初始化, * 加载 => classLoader将类字节码加载到jvm内存中 * 验证 => 验证字节码文件的正确性 * 准备 => 为静态变量赋予初始值 * 解析 => 将符号引用转变为直接引用 * 初始化 =>