问:定简单说说 Java 中 & 与 && 有什么区别?| 与 || 呢?
答:& 是位运算符,&& 是布尔逻辑运算符,| 与 || 类似同理。在进行逻辑判断时用 & 或 | 判断的是左右两边参与位运算后的结果是否为 true,而用 && 的左边为 false 后就不再处理右边的内容,而用 || 的左边为 true 后就不再处理右边的内容。简单说就是 & 和 | 是位运算符,&& 和 || 是逻辑短路运算符。
问:如何用最有效的方式计算 2 乘以 8 等于几?
答:2 << 3。
因为 2 的二进制码为 0000 0010,左移一位就是 0000 0100(十进制的 4),左移两位就是 0000 1000(十进制的 8),左移 n 位就相当于 2×2 的 n 次方,所以 2 × 8 可以理解为 2 位运算左移 3 次,即 2 << 3。因为位运算是 CPU 直接支持的,所以效率很高。
本文参考自 Java 逻辑运算符相关笔试题解析