最近有人告诉我,涉及较小整数的比较会更快,例如,
// Case 1
int i = 0;
int j = 1000;
if(i<j) {//do something}
// Case 2
int j = 6000000;
int i = 500000;
if(i<j){//do something else}
因此,案例 1 中的比较(if
条件)应该比案例 2 中的更快。在案例 2 中,整数将占用更多空间来存储,但这会影响比较,我不确定。
编辑 1: 我在考虑 i 和 j 的二进制表示,例如,对于 i=0,它将是 0,对于 j=1000,它的 1111101000(在 32 位表示中它应该是:22 个零后跟 1111101000,完全忘记了关于 32 位或 64 位表示,我的错!)
我试图查看一个简单的比较程序的 JVM 规范和字节码,对我来说没有什么意义。现在的问题是java中数字的比较如何工作?我想这也将回答为什么(或为什么不)任何情况都会更快。
编辑2: 我只是在寻找一个详细的解释,我并不担心微优化