枚举和常量类哪个好 java的枚举会比常量更耗内存吗?

java的枚举会比常量更耗内存吗?从内存上来说,如果常量不单独放在一个Constance类中,是要比枚举少一个指针。内存少4个字节。生命周期跟具体使用方式有关,一般情况下如果常量声明为static ,

java的枚举会比常量更耗内存吗?

从内存上来说,如果常量不单独放在一个Constance类中,是要比枚举少一个指针。内存少4个字节。

生命周期跟具体使用方式有关,一般情况下如果常量声明为static ,那么生命周期跟枚举是一致的。

把string当enum用,有性能损失吗?

有。

以c语言为例,在内存中创建一个字符串至少需要一个char数组来存储,因为要存储结束标识符;而枚举实际则是一个结构,其内的枚举项可以定义为整型,要比字符串的存储方便,也开销少。

而且把字符串当做枚举来用,字符串也容易写错,而枚举都定义成数字常量,编译器编译时容易发现错误,提示开发者及时改正,便于维护。