【发布时间】:2014-08-14 10:12:33
【问题描述】:
首先请参阅 Android 开发人员指南中的以下引用:
枚举通常需要两倍于静态常量的内存。您应该严格避免在 Android 上使用枚举。
Java 中的每个类(包括匿名内部类)使用大约 500 字节的代码。 https://developer.android.com/training/articles/memory.html
尽管第一个要点中有不祥的警告,即“严格避免在 Android 上使用枚举”,但在那一点下所说的实际上并没有那么糟糕。常量是 32 位整数,而枚举可能是 64 位引用。那里给出的关于枚举昂贵两倍的数学是有道理的,而且看起来并不那么可怕。
我担心该警告可能部分基于第二个要点。
我想知道一个简单的枚举“类”声明是否带有 500 字节的开销? eacn 枚举类型呢?
类型可以是“扩展类”似乎很合理,因为它们可以采用自己的方法,而不仅仅是实例。将其表述为一个问题,如果我的枚举是 Color,并且我有 20 种 Color 枚举类型(例如红色、蓝色、绿色......),那么每种类型是 500 字节吗?
【问题讨论】:
-
它不应该有明显的区别,除非你创建了数千个枚举类
-
@injecteer 事实并非如此。小事加起来最终会产生很大的不同,请观看这个关于 Android 开发者的精彩教程:youtube.com/…