首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java HotSpot Enum开销

Java HotSpot Enum开销
EN

Stack Overflow用户
提问于 2014-01-16 16:31:04
回答 1查看 783关注 0票数 7

假设您有一个“简单”枚举:

代码语言:javascript
复制
public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY 
}

然后你在某个地方使用它:

代码语言:javascript
复制
Day day = Day.SUNDAY;
...
if(day==Day.SUNDAY) {...}

这是如何将性能方面(内存和时间)与使用int进行比较的?

代码语言:javascript
复制
int day = Day.SUNDAY;
...
public class Day {
    public static final int SUNDAY=0;
    public static final int MONDAY=1;
}

我们启用了JIT HotSpot编译器以及其他“标准”优化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-16 16:43:24

当您引用Day.SUNDAY时,枚举可能会有轻微的性能损失,因为int常量是编译时常量,因此可以内联,而enum常量需要getstatic

比较两个ints或两个引用在所需时间上当然是相同的,因为您比较的是引用(地址),而不是调用.equals()

当然,这里的性能影响很小;唯一需要担心的原因是,如果这是在应用程序的性能关键部分,而分析表明使用ints更好。枚举对于可维护性和代码正确性的好处远远超过了像这样的轻微的低效率。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21167417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档