一、实体常量类
/**
* 实体常量类
* @author Administrator
* @date 2018/7/21
*/
public class ConstClass {
private static final String Success = "成功";
private static final String Fail = "失败";
}
1、JDK编译时,直接把常量编译到使用的地方。在修改变量值后,其它类有可能会出现编译到旧常量值的问题。
2、只能用equals比较,性能较低。无法保证类型是否合法,限定类型值。
3、如果使用了private,限定了只能当前类的拥有者才可以修改,如果使用public,则子类可以继承修改,父类并不知情
二、内部常量类
/**
* 实体常量类
* @author Administrator
* @date 2018/7/21
*/
public class ConstClass {
private static final String Success = new String("成功");
private static final String Fail = new String("失败");
}
1、JDK编译时,直接把常量编译到引用类地方。
2、可以使用==进行比较,提高效率。
三、枚举
/**
* 枚举
* @author Administrator
* @date 2018/7/21
*/
public enum EnumClass {
Success(1),Fail(0);
/**
* 带value的构造方法
* @param value
*/
EnumClass(int value){
this.value = value;
}
private int value;
public int getValue() {
return value;
}
}
1、类型限定,性能较高,推荐使用。
2、枚举构造方法是私有的,无法继承修改,默认私有化无参构造方法,可用于枚举单例