public enum Color { blue, red, yellow }
枚舉是會被另外處理的。java
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中的方法spring
/** * 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"); }
單例模式就是保證整個jvm中只存在惟一的一個實例。jvm
餓漢式,在被jvm加載的過程當中就已經被初始化了。靜態代碼塊的緣由。spa
public class BeanContainer { public static BeanContainer getInstance() { return ContainerHolder.HOLDER.instance; } private enum ContainerHolder { HOLDER; private BeanContainer instance; ContainerHolder() { instance = new BeanContainer(); } } }