問:定簡單說說 Java 中 & 與 && 有什么區(qū)別嗜湃?| 與 || 呢作箍?
答:& 是位運(yùn)算符片橡,&& 是布爾邏輯運(yùn)算符患雇,| 與 || 類似同理跃脊。在進(jìn)行邏輯判斷時(shí)用 & 或 | 判斷的是左右兩邊參與位運(yùn)算后的結(jié)果是否為 true,而用 && 的左邊為 false 后就不再處理右邊的內(nèi)容苛吱,而用 || 的左邊為 true 后就不再處理右邊的內(nèi)容酪术。簡單說就是 & 和 | 是位運(yùn)算符,&& 和 || 是邏輯短路運(yùn)算符翠储。
問:如何用最有效的方式計(jì)算 2 乘以 8 等于幾绘雁?
答:2 << 3。
因?yàn)?2 的二進(jìn)制碼為 0000 0010援所,左移一位就是 0000 0100(十進(jìn)制的 4)庐舟,左移兩位就是 0000 1000(十進(jìn)制的 8),左移 n 位就相當(dāng)于 2×2 的 n 次方住拭,所以 2 × 8 可以理解為 2 位運(yùn)算左移 3 次挪略,即 2 << 3。因?yàn)槲贿\(yùn)算是 CPU 直接支持的滔岳,所以效率很高杠娱。