The enum instances are created only once, when the Enum class itself is loaded.
It is very important that they are created only once, so that object identity comparison works (==). Even the object (de)serialization mechanism had to be adjusted to support this.