& 而不是 % 优化?
& instead of % optimization?
前几天我在做一些操作题,意识到我可以用 n & 15
替换 n % 16
既然 % 慢,而 & 快,这是一个很好的优化,还是编译器已经做了这样的事情,我不需要打扰?
这里有一个非常棘手的区别。在 HashMap
implementation.
中选择 bucket
时,您在这里的想法是一样的
如果你的n
是负数:
System.out.println(-31 % 16); // -15
System.out.println(-31 & 15); // 1
你会得到不同的结果。
前几天我在做一些操作题,意识到我可以用 n & 15
n % 16
既然 % 慢,而 & 快,这是一个很好的优化,还是编译器已经做了这样的事情,我不需要打扰?
这里有一个非常棘手的区别。在 HashMap
implementation.
bucket
时,您在这里的想法是一样的
如果你的n
是负数:
System.out.println(-31 % 16); // -15
System.out.println(-31 & 15); // 1
你会得到不同的结果。