说说switch关键字( 二 )

编译生成Test.class 。拖入IDEA进行反编译得到如下代码:
public static void switchTest(Fruit a) {switch(1.$SwitchMap$com$dengchengchao$Fruit[a.ordinal()]) {case 1:System.out.println("Orange");break;case 2:System.out.println("Apple");break;default:System.out.println("Banana");}}可以看到 , 枚举支持switch更加简单 , 直接通过枚举的顺序(order属性)即可作为相关case
总结总之:

  • switch的设计按道理来说,是比if-else要快的 , 但是在99.99%的情况下,他们性能差不多,除非case分支量巨大,但是在case分支过多的情况下,一般应该考虑使用多态重构了 。
  • switch虽然支持byte,int,short,char,enum,String但是本质上都是int , 其他的只是编译器帮你进行了语法糖优化而已 。
尊重劳动成果,转载注明出处
~~
微信搜索公众号:StackTrace,关注我们,不断学习 , 不断提升
【说说switch关键字】

推荐阅读