编译生成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关键字】
推荐阅读
- 二 Java多线程-线程关键字
- switch上古卷轴5mod怎么用(switch上古卷轴5mod视频)
- 说说 Redis 事务
- Switch什么时候出Pro_SwitchPro什么时候上市
- 为了讲明白继承和super、this关键字,群主发了20块钱群红包
- Vue中使用Switch开关用来控制商品的上架与下架情况、同时根据数据库商品的状态反应到前台、前台修改商品状态保存到数据库
- switch为什么这么火_switch火爆原因
- 微信朋友圈怎么转发图片说说(微信想转发朋友圈的说说和图片)
- 说说芦荟胶 我一共用过4款芦荟胶,分别是自然乐园芦荟胶、丹姿芦荟胶、韩束芦荟胶和百雀羚三生花芦荟胶。
- 说说传说中的KFC御用豆浆,为什么这么好喝