枚举方式的线程安全的单例
生活随笔
收集整理的這篇文章主要介紹了
枚举方式的线程安全的单例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1,枚舉
public enum Color {blue, red, yellow }枚舉是會被另外處理的。
- 枚舉只能擁有私有的構造器 枚舉類實際上是一個繼承Enum的一個final類
- 枚舉類不允許被反序列化,Enum重寫了方法
- 靜態代碼塊中對final變量的值進行初始化
- enum類最終是一個final class
Enum中的方法
/*** prevent default deserialization*/private void readObject(ObjectInputStream in) throws IOException,ClassNotFoundException {throw new InvalidObjectException("can't deserialize enum");}private void readObjectNoData() throws ObjectStreamException {throw new InvalidObjectException("can't deserialize enum");}?
2,單例模式
單例模式就是保證整個jvm中只存在唯一的一個實例。
餓漢式,在被jvm加載的過程中就已經被初始化了。靜態代碼塊的原因。
public class BeanContainer {public static BeanContainer getInstance() {return ContainerHolder.HOLDER.instance;}private enum ContainerHolder {HOLDER;private BeanContainer instance;ContainerHolder() {instance = new BeanContainer();}} }?
轉載于:https://www.cnblogs.com/voctrals/p/10628137.html
總結
以上是生活随笔為你收集整理的枚举方式的线程安全的单例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五年了,你还在用junit4吗?
- 下一篇: 美团面试官:讲清楚MySQL结构体系,立