public class EnumTest {
public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
}
}
enum Size{SMALL,MEDIUM,LARGE};
这个程序运行的结果是:
false
false
true
SMALL
MEDIUM
LARGE
得出以下结论
枚举是单例的:枚举类型在 Java 中是单例的,意味着每个枚举常量只创建一次。因此,s 和 u 引用的是同一个对象,所以 s == u 的结果是 true。
枚举不是原始数据类型:枚举是一种特殊的类类型,而不是原始数据类型(如 int、double 等),所以 s.getClass().isPrimitive() 的结果是 false。
枚举的比较:枚举类型的实例比较时,使用的是 == 而不是 .equals(),因为枚举保证每个枚举常量只存在一个实例。
枚举的 valueOf 方法:valueOf 方法是一个静态方法,用于根据名称获取枚举常量的实例。它返回与指定字符串名称相匹配的枚举常量的实例。
枚举的 values 方法:values 方法返回一个包含枚举所有值的数组,可以用来遍历枚举的所有实例。
枚举的内存效率:由于枚举常量是单例的,它们在内存中只占用一个实例的空间,这使得枚举类型在表示一组固定常量时非常高效。
枚举的类型安全:枚举提供了一种类型安全的方式来表示一组固定的常量,避免了使用字符串或整数常量可能导致的错误。