枚举介绍
枚举是诞生于JDK1.5,是新增的数据类型。使用枚举时我们可以描述一些特定的业务场景,比如对水果的种类描述、天气的描述,业务中常用的就是错误码的描述。
枚举的使用方法
1.常量的使用
package enumdemo;
public enum FruitEnum {
APPLE,BANANA,PEACH
}
2.switch的使用
package enumdemo;
public enum FruitEnum {
APPLE,BANANA,PEACH
}
class FruitTest{
FruitEnum fruitEnum = FruitEnum.APPLE;
public void test(){
switch (fruitEnum){
case APPLE:
fruitEnum = FruitEnum.APPLE;
break;
case PEACH:
fruitEnum = FruitEnum.BANANA;
break;
}
}
}
假如不使用枚举的话(JDK1.5之前),通常使用int类型来定义这些常量,使用int时会存在一定的问题。
- int本身是不具备安全性的,假如在定义的时候少了final关键字那么就会存在被他人修改的风险,但是枚举的话不会存在这样的风险
- 使用int类型时语意表达的不明确,像数字的话不能直观的表达出它的含义
枚举是线程安全的原因:
- 枚举只会在类加载时装载一次,所以是线程安全的
- 从枚举类最终生成的字节码来看,都是会被final修饰的,而它的所有属性都会被final和static修饰
- 当我们比较枚举的时候,可以直接使用==进行比较,因为它在程序加载的时候就创建了,而不是被new出来的,所有本身就只有一个对象,可以直接进行比较的