來自:http://www.hollischuang.com/archives/197
枚舉是如何保證線程安全的
要想看源碼,首先得有一個類吧,那麼枚舉類型究竟是什麼類呢?是enum嗎?答案很明顯不是,enum就和class同樣,只是一個關鍵字,他並非一個類,那麼枚舉是由什麼類維護的呢,咱們簡單的寫一個枚舉:java
public enum t { SPRING,SUMMER,AUTUMN,WINTER; }
而後咱們使用反編譯,看看這段代碼究竟是怎麼實現的,反編譯(Java的反編譯)後代碼內容以下:安全
public final class T extends Enum { private T(String s, int i) { super(s, i); } public static T[] values() { T at[]; int i; T at1[]; System.arraycopy(at = ENUM$VALUES, 0, at1 = new T[i = at.length], 0, i); return at1; } public static T valueOf(String s) { return (T)Enum.valueOf(demo/T, s); } public static final T SPRING;