Java 7字符串开关反编译:意外指令

Java 7字符串开关反编译:意外指令,第1张

Java 7字符串开关反编译:意外指令

使用字符串进行切换时,找到正确的case语句是一个两步过程。

  1. 计算切换字符串的哈希码,并在case语句中查找“哈希码匹配”,这是通过LOOKUPSWITCH完成的。请注意,LOOKUPSWITCH下的大整数,这是case语句中字符串的哈希码。
  2. 现在,两个字符串可以具有相同的哈希码,但是可能不太一样。因此,实际的字符串比较仍必须进行。因此,一旦哈希码匹配,就将开关字符串与匹配的case语句中的字符串进行比较。LOOKUPSWITCH和TABLESWITCH之间的指令正是这样做的。确认匹配后,将通过TABLESWITCH到达要为匹配的case语句执行的代码。

还要注意,指定使用哪个编译器-javac或ECJ(用于Java的Eclipse编译器)很有用。两种编译器可能会不同地生成字节码。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5561932.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存