日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

枚举方式的线程安全的单例

發布時間:2025/3/16 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 枚举方式的线程安全的单例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1,枚舉

public enum Color {blue, red, yellow }

枚舉是會被另外處理的。

  • 枚舉只能擁有私有的構造器 枚舉類實際上是一個繼承Enum的一個final類
  • 枚舉類不允許被反序列化,Enum重寫了方法
  • 靜態代碼塊中對final變量的值進行初始化
  • enum類最終是一個final class
public final class voctrals.study.whatisspring.test.Color extends java.lang.Enum<voctrals.study.whatisspring.test.Color> {public static final voctrals.study.whatisspring.test.Color blue;public static final voctrals.study.whatisspring.test.Color red;public static final voctrals.study.whatisspring.test.Color yellow;public static voctrals.study.whatisspring.test.Color[] values(); // jdk給加上的public static voctrals.study.whatisspring.test.Color valueOf(java.lang.String); // jdk給加上的public int getValue();static {}; }

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

總結

以上是生活随笔為你收集整理的枚举方式的线程安全的单例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。