关于Java中Switch⽀持的数据类型
Java中Switch⽀持byte、short、char、int四种基本类型,在JDK1.5中⽀持了枚举类型以及byte、short、char、int四种基本数据类型的包装类,在JDK1.7中⽀持了String类型,不⽀持long类型以及long的包装类。
⼀、底层实现
java中switch是将所有类型转换成int类型来进⾏判断。关于long,因为long类型表⽰的范围⼤于int类型,所以⽆法进⾏转换,因此switch 不⽀持long类型
⼆、基本类型以及其包装类转换成int类型
基本类型都为强转,char类型为取ascll码,包装类强转前有个⾃动拆装箱的操作。
三、枚举类转换成int类型java switch case string
在switch中枚举类型的int值为枚举元素在枚举类中的序号。
四、String类型转换成int类型
对于String来说其int值即为String类的哈希值,即利⽤hashCode()函数,考虑到哈希值相等的情况,底层中加⼊了equals()函数。