扫码关注公众号
下面的switch语句中,x可以是哪些类型的数据:()
正确答案是B、D以java8为准,switch支持10种类型 基本类型:bytecharshortint对于包装类:Byte,Short,Character,IntegerStringenum 实际只支持int类型Java实际只能支持int类型的switch语句,那其他的类型时如何支持的 a、基本类型bytecharshort原因:这些基本数字类型可自动向上转为int,实际还是用的int。 b、基本类型包装类Byte,Short,Character,Integer原因:java的自动拆箱机制可看这些对象自动转为基本类型 c、String类型原因:实际switch比较的string.hashCode值,它是一个int类型如何实现的,网上例子很多。此处不表。 d、enum类型原因:实际比较的是enum的ordinal值(表示枚举值的顺序),它也是一个int类型所以也可以说switch语句只支持int类型
关于switch语句的描述中,正确的是()
正确答案是Aswitch语句中default子句可以没有,也可以有一个;每个case语句序列中可以有break语句也可以没有,如果有break,则结束switch语句,如果没有break,则会出现case穿透现象;default子句可以放在任何地方;case子句后面的表达式可以是整数表达式或者是枚举类型表达式。
讲讲default关键字
自Java8加入用来修饰方法,使得在接口中的方法可以写入方法体接口的实现类若没有实现(也可以叫覆盖)default类型的方法,则可在实现类中直接调用(接口says:你不覆盖,那就按这个默认的来了啊)。否则,是正常的覆盖,实现多态。1.default的加入,使得我们在接口类中增加方法时,不必一个个地改动实现类了(添加一个default方法时,实现类可以不去管),使得接口和抽象类更为贴近了一步。2.很多的抽象类可以被精简掉了,实现接口的抽象类中写的方法体代码可以直接移到接口中,派生类直接实现接口即可,具体可以看WebMvcConfigurerAdapter被废弃的例子