java中的枚举类和常量类区别是:1、定义不同;2、越界情况不同;3、使用方法不同;4、编译方法不同5、继承不同。枚举和常量不是一个维度的东西,枚举是对象,常量是字段。常量能做的,枚举都能做,枚举能做的常量不一定能做。
1、定义不同
枚举和常量不是一个维度的东西,枚举是对象,常量是字段。常量能做的,枚举都能做,枚举能做的常量不一定能做。枚举型可以直接与数据库打交道,我门通常使用varchar类型存储,对应的是枚举的常量名。
2、越界情况不同
switch语句支持枚举型,当switch使用int、String类型时,由于值的不稳定性往往会有越界的现象,对于这个的处理往往只能通过if条件筛选以及default模块来处理。而使用枚举型后,在编译期间限定类型,不允许发生越界的情况
3、使用方法不同
当你使用常量类时,往往得通过equals去判断两者是否相等,使用枚举的话由于常量值地址少数,可以用==直接对比,性能会有提高
4、编译方法不同
常量类编译时,是直接把常量的值编译到类的二进制代码里,常量的值在升级中变化后,需要重新编译引用常量的类,因为里面存的是旧值。枚举类编译时,没有把常量值编译到代码里,即使常量的值发生变化,也不会影响引用常量的类。
5、继承不同
枚举类编译后默认为final class,不允许继承可防止被子类修改。常量类可被继承修改、增加字段等,容易导致父类的不兼容。
延伸阅读:
什么是Java?
Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的形式和感觉,但它要比C++语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。
Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。
文章标题:java中的枚举类和常量类区别在哪儿,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38053