Java 关于逻辑运算符和位运算符的两道经典面试题

本文探讨了Java中短路运算在Demo04代码中的应用,并强调了位运算的高效性,通过实例展示了如何快速计算2*8。内容涵盖了布尔逻辑和位操作在实际编程中的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 短路运算

package superlily;

public class Demo04 {
    public static void main(String[] args) {
        int i = 5;
        boolean b = (i<4) && (++i < 5); //(i<4) 为false, 程序不再继续执行后面的判断(++i < 5), 直接把false赋给b

        System.out.println(i); // 所以i是5, 因为i没有做过+1的运算 
    }
}

2. 如何最高效(快)地计算 2*8 的值?

位运算在计算机里是直接和底层打交道的,相当于电路换一个地方开灯,比正常的乘法要快,效率极高。

        /*
        A = 0011 1100
        B = 0000 1101
        ---------------
        A&B =0000 1100
        A|B =0011 1101
        A^B = 0011 0001 异或运算, 只要不同就是1, 相同就是0
        ~B = 1111 0010 取反运算
         */

        int ii =2;
        /*
        0000 0001   1
        0000 0010   2
        0000 0100   4
        0000 1000   8
        0001 0000  16
         */
        int bb = 2<<3;
        System.out.println(bb); //16

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值