java中的运算符&与&&

1.现实场景:做了一个星期的需求,刚于周一上线,然后周三改了两个小版本,周四下班前突然说整个方案大改,并且下周一的版本直接上(不要误会,虽然一周一个版本,但是基本不加班。此处没有滑稽,因为其他人在6点之前走完了。。。真的不加班)。

2.业务场景:一个订单下的所有物资都已经到货,并且尾款没有付清,发送追款邮件。

3.部分代码:

boolean allArrived = true;
boolean existNotPaid = false;

  一大堆逻辑巴拉巴拉。。。改变allArrived,existNotPaid变量的值

  方法最后,

if(allArrived && existNotPaid){
    调用发邮件的服务。。。
}

本来这个时候应该完事了,但是突然想起来,如果allArrived = false并且existNotPaid = false。会不会进入if判断,发邮件出去呢?当然这个时候还是记得&&运算符一旦第一个变量为false,不会去判断第二个变量。&运算符无论第一个变量true or false都会判断第二个变量。但是会不会false&false = true?手动试一试。

3.丑陋的测试代码:

public class TestBoolean {

    public static void main(String[] args) {
        System.out.println(false & false);
        System.out.println(false && false);
    }

}

4.结果:

false
false

5.一点点想法:&和&&都是运算符两边都为true时,结果才是true。但是java有什么运算符能让false和false变为true呢?去搜了一番,发现并没有这样的问题,暂时放下,继续加班。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值