Java是如何内部保证每个JVM只存在一个ENUM实例的?它是在应用程序启动时创建的,并且从那时起,当多个线程访问它时,它将返回在启动时创建的对象吗?
还是它实现了一种类似于单例模式的双重同步,以便即使多个线程访问它,也只会创建一个实例?
枚举实例在类加载时创建。如果同一个枚举类被多个类加载器加载(例如,在Web应用程序容器中进行类加载游戏时),您将在内存中拥有多个不兼容的实例。
enum1.getClass() == enum2.getClass()
返回 false。它们实际上是JVM中不同的类。 - Michał Zabielski