1.前言
写完这个题目,我感觉自己好像”孔乙己”啊,回字的四种写法要不要学啊~
我们经常会用到单例模式,但是我对他一直没有一个统一的的认识,比如我清楚好多种单例的写法,但是每一种是怎么演化来的?...为了这一种情况,每次都加锁,,性能下降太厉害了(其实并不,加了锁我们大部分时间也是够用的)....,并且由于静态内部类只会被加载一次,所以这种写法也是线程安全的:
4.6 枚举写法
上面的所有实现都有一点小问题:
序列化与反序列化没有考虑,每次反序列化都能拿到一个新的实例....枚举类的初始化过程天然线程安全.即保证了线程安全.
对枚举的序列化与反序列禁止了自定义,由JDK实现,不会出现反序列化多个实例的情况....在 《Effctive Java》中,作者极力推荐枚举实现单例,甚至说了它是单例实现的最好写法.
虽然我还没有应用过枚举实现单例,但是很快我就会将它加进我的代码库里.