java-switch常见问题

java-switch常见问题

起男 1,163 2021-01-22

java-switch常见问题

java switch支持byte、short、int类型,在jdk1.5时,支持了枚举类型,在jdk1.7时,又支持了string类型

为什么不支持long?

switch底层是使用int类型来进行判断的,即使是枚举、string类型,最终也是转变成int类型。由于long型表示范围大于int型,因此不支持long类型

枚举类型是如何变成int类型的?

在switch语句中,是根据枚举元素在枚举中的序号类转变成int的

枚举元素在数组中的下标由ordinal()函数决定,该方法就是返回元素在枚举类中的序号

string类型是如何变成int类型的?

首先要知道char是如何变成int的,是ASCII码

对于string来说,利用的就是hashCode函数了,但是两个不同的字符串hashCode是有可能相等的,这时候就得靠equals函数了

包装类可以吗?

是支持包装类型的,通过自动拆箱解决

如果传入参数是null,则会报空指针