
使用字符串进行切换时,找到正确的case语句是一个两步过程。
- 计算切换字符串的哈希码,并在case语句中查找“哈希码匹配”,这是通过LOOKUPSWITCH完成的。请注意,LOOKUPSWITCH下的大整数,这是case语句中字符串的哈希码。
- 现在,两个字符串可以具有相同的哈希码,但是可能不太一样。因此,实际的字符串比较仍必须进行。因此,一旦哈希码匹配,就将开关字符串与匹配的case语句中的字符串进行比较。LOOKUPSWITCH和TABLESWITCH之间的指令正是这样做的。确认匹配后,将通过TABLESWITCH到达要为匹配的case语句执行的代码。
还要注意,指定使用哪个编译器-javac或ECJ(用于Java的Eclipse编译器)很有用。两种编译器可能会不同地生成字节码。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)