java - ENUM 存储(内存等)

标签 java performance memory enums

我只是在问自己一个小问题,我不确定我是否能找到正确的答案:

如果我在 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/

相关文章:

linux - 访问 Linux 用户空间中的硬件寄存器

python - 为什么 tensorflow 消耗这么多内存?

java - 使用垂直空白字符作为 java 扫描器分隔符在每个末尾扫描空字符串

performance - VBA 循环效率

ruby - Ruby 有像 Python 那样的控制台 perf 工具吗?

javascript - FullCalendar 提高了渲染事件的性能

Android - 在将位图保存到结果 Activity 中的 SDCARD 之前压缩位图

c# - 在构造函数以外的地方构建结构/对象

java - 要使用的工作流设计模式类型?

java - 我们应该避免使用 Powermock 吗?