Java switch 足够智能以重新排列?

Java switch smart enough to rearrange?

给定一段带有许多 case 选项的 switch 的热门代码(并且所有都有中断,例如可以重新排列)JVM 会找出频繁的条目以先于其他条目检查它们吗?

个案执行的频率或可能性不在其中。编译器将生成:

  • 一个tableswitch指令,带有一个关联的跳转table,直接由开关值索引,或
  • 一个 lookupswitch 指令,带有 table 个 key/target 对,可以(通常)进行二进制搜索。

参见JVM Specification #3.10