我只是在问自己一个小问题,我不确定我是否能找到正确的答案:
如果我在 Java 中使用一个 ENUM,它有一个自己的构造函数(以及很多很多 maaaaany 参数)- 是每次程序执行时存储在内存中的那些,还是它们只是在内存中“加载”,如果他们得到用过吗?
我的意思是,如果我有一个包含 400 个条目的 ENUM,并且只使用其中一个条目 - 所有其他条目是否仍然存在于内存中?
一些伪代码:
public enum Type {
ENTRY_A(val1, val2, val3, val4, new Object(val5, val6, val7, ...)),
ENTRY_B(val1, val2, val3, val4, new Object(val5, val6, val7, ...)),
ENTRY_C(val1, val2, val3, val4, new Object(val5, val6, val7, ...)),
...
}
如果我只使用 ENTRY_A,而不触及 ENTRY_B、ENTRY_C 等 - Java 将如何准确处理?
感谢您的回答 - 是的,这主要是出于好奇
最佳答案
是的,即使您只使用一个 ENUM 常量,所有内容都会加载到内存中。
枚举是一种特殊类型的类,所有字段都是常量,因此当您加载枚举时,它本身会将所有内容加载到内存中。
关于java - ENUM 存储(内存等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13051223/