我一直在网上搜索一些与java中enum类相关的查询的答案。
我很想知道枚举类的内部因此我打开源代码并找到了一些方法,如下所示 -
protected final void finalize() { }
我发现那里的finalize方法是一个空白的实现,并没有正确评论。所以我的查询是为什么枚举类不能有finalize方法意味着在枚举类中使用finalize方法是否有任何损害,或者是否有任何其他原因。
看到这堂课后,我更加困惑。任何帮助将不胜感激。提前谢谢。答案 0 :(得分:0)
filter
类在单个JVM安装中每个枚举值只有1个实例。它们本质上是JVM上的单例。
在Oracle JVM上很容易证明这一点,因为对象的默认身份哈希码是内存地址。然后,当您设置Enum
实例时,您可以在程序中的任何位置看到它,它实际上是同一个对象。
答案 1 :(得分:-2)
1) - 枚举用于声明常量,枚举常量静态,即类级别...因此不能被删除。
2) - 除了toString()之外的所有对象类方法都被覆盖并在Enum类中声明为final,因此最终用户不能修改任何常量。