我正在查看
github上的一个开源项目,我在
Java中找到了以下代码行,
static byte[] byteArray = new byte[1 << 11];
在这里我们知道1<< 11只不过是2048,所以我可以通过给出长度= 2048来直接初始化数组,如下所示,static byte [] byteArray = new byte [2048]; 然后为什么写成1<<直接11而不是2048.
解决方法
使用逐位操作的原因是要明确这是2的幂.我看到人们混淆常数.例如8096是8192和4096的组合.
我更喜欢做的是使用<< 10或<< 20和KB和MB.例如2<< 10 for 2 KB