5
为什么(a * b!= 0)比Java中的(a!= 0 && b!= 0)快?
我正在用Java写一些代码,在某些时候,程序的流程是由两个int变量“ a”和“ b”是否非零(请注意:a和b永远都不为负,以及永远不会在整数溢出范围内)。 我可以用 if (a != 0 && b != 0) { /* Some code */ } 或者 if (a*b != 0) { /* Some code */ } 因为我希望这段代码每次运行可以运行数百万次,所以我想知道哪一个更快。我通过在一个巨大的随机生成的数组上进行比较来进行实验,我也很好奇该数组的稀疏性(数据分数= 0)如何影响结果: long time; final int len = 50000000; int arbitrary = 0; int[][] nums = new int[2][len]; for (double fraction …