将int值按位移位的目的是什么?

jMi*_*Kon 11 java bit-shift

看一下java.nio.DirectByteBuffer类的源代码,我发现了这个:

if ((length << 0) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) ....
Run Code Online (Sandbox Code Playgroud)

将长度移位零比特的目的是什么?可能这是一些性能优化还是其他什么?

Ste*_*eod 16

我想我已经解决了.

在类JavaDocs中:

// -- This file was mechanically generated: Do not edit! -- //
Run Code Online (Sandbox Code Playgroud)

所以它不是手工编码的.这是脚本生成的,当位移的数量为零时,脚本编写器没有为该情况添加优化.


aio*_*obe 3

i << 0是无操作。它的计算结果与 相同i

  • 这解释了操作的输出,但它并没有真正解释真正的问题 - 为什么要编写代码来执行此操作? (3认同)