本文由咕咚发布在个人博客,转载请注明出处。
在 Android 官方文档推出性能优化的时候,从一开始有这样一段说明:
Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android.
意思是说在 Android 平台上 avoid 使用枚举,因为枚举类比一般的静态常量多占用两倍的空间。
如果你还不了解枚举,参看文章 枚举介绍以及枚举的本质。
由于枚举最终的实现原理还是类,在编译完成后,最终为每一种类型生成一个静态对象,而在内存申请方面,对象需要的内存空间远大于普通的静态常量,而且分析枚举对象的成员变量可知,每一个对象中默认都会有一个字符数组空间的申请,计算下来,枚举需要的空间远大于普通的静态变量。