switch支持哪些数据类型

在Java7之前
switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。
在Java7中,也支持了String类型,String byte short int char Enum 类型

总结:Java7后,switch支持10种类型
基本类型:byte char short int ;
对应包装类 :Byte,Short,Character,Integer ;
String ,Enum ;
总的来说,实际上switch只支持int类型
Java实际只能支持int类型的switch语句,那其他的类型时如何支持的
a、基本类型byte char short
原因:这些基本数字类型可自动向上转为int, 实际还是用的int。
b、基本类型包装类Byte,Short,Character,Integer 原因:java的自动拆箱机制 可看这些对象自动转为基本类型
c、String 类型 原因:实际switch比较的string.hashCode值,它是一个int类型 如何实现的,网上例子很多。此处不表。
d、enum类型 原因 :实际比较的是enum的ordinal值(表示枚举值的顺序),它也是一个int类型 所以也可以说 switch语句只支持int类型

你可能感兴趣的:(java,基础,java,switch)