对switch语句重新排序没有任何效果。
查看Java字节码规范,
switch可以将a编译为a
lookupswitch或一条
tableswitch指令,然后打开a
int。A
lookupswitch总是以可能的值以已排序的顺序进行编译,因此对代码中的常数进行重新排序将无关紧要,而
tableswitchjust则具有相对于指定偏移量的可能跳转数组,因此,它也不必关心原始顺序。
请参阅http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.lookupswitch和http://docs.oracle.com/javase/specs/jvms/se7
/html/jvms-6.html#jvms-6.5.tableswitch了解详情。



