Open
Description
先把2中单例模式的代码贴上:
懒汉式的单例初始化时间在第一次调用的时候。
然后关于饿汉式的初始化时间,网上大部分传闻说: “饿汉式单例在类加载阶段就已经初始化了,典型的空间换时间...”。
首先痛斥下以讹传讹的前辈们,这并不是开发者的精神。
类的生命周期我给作者提过issue,再复习一下:加载,验证,准备,解析,初始化,使用,卸载。
我想问问前辈们,饿汉式的单例在以上哪个阶段被初始化了?哪里占内存空间了?
以我个人的理解:最多在准备阶段,会给类的静态字段的变量赋零值,引用类型为null。
然后就是那8个初始化时机会初始化饿汉式的单例。而8个时机里面,正常使用,只有第一次获取单例的时候才会初始化单例。
所以我说 饿汉式与懒汉式基本无二。