& 而不是 % 优化?

& instead of % optimization?

前几天我在做一些操作题,意识到我可以用 n & 15

替换 n % 16

既然 % 慢,而 & 快,这是一个很好的优化,还是编译器已经做了这样的事情,我不需要打扰?

这里有一个非常棘手的区别。在 HashMap implementation.

中选择 bucket 时,您在这里的想法是一样的

如果你的n是负数:

System.out.println(-31 % 16); // -15
System.out.println(-31 & 15); // 1

你会得到不同的结果。