如果我们有这样的代码:
class A {
private hash = 0;
public void test(){
if (hash == 1) {
//dosomething
}
}
}
确切地说比较执行了什么?
以下是我的理解:
是不是?在意义时间内,堆中的哈希值可以改变吗?
答案 0 :(得分:4)
字段哈希和常量1都在堆栈上加载。然后进行比较:
...
GETFIELD A.hash : I // push hash onto the stack
ICONST_1 // push 1 onto the stack
IF_ICMPNE L1 // pop the top two ints off the stack and compare them
... // do smth
L1
RETURN