java中"与"和"或"

在java中"与"和"或"都具有短路功能。

关于"或"运算如

if(mc == null || mc.getReceive()==0){
                //没有领取过
                //业务1
            }else{
                //业务2
            }

  上面的"mc"是一个对象,如果这个对象为null 继续执行mc.getReceive() 就会报异常.然而上面这段代码经过测试,并没有报异常,代码正常通过测试,也就是说,如果符合mc==null的条件直接短路判断为"真",并没有执行mc.getReceive()这段代码的判断.

ps:应用这种情况的双目运算一定要把mc==null 放在前面,不然就会报异常.

关于"与"运算

//47到56是q币卡密序号
            if(param.getType() > 46 && param.getType() <= 56){
                 //业务1    
            }else {//除47到56和0之外都是游戏直充序号
                //业务2
            }

  在上面的代码中也会进行短路运算,如果第一个为"假",那么第二个判断不会执行.

关于"&&"与"&"的区别

  "&" 是不具备短路功能 ,并且"&"可以用于位运算符,当"&"两边的表达式不是Boolean值时,"&"表示按位与操作(如0001&11101 结果是0001)

规则是:该位只要有一个值为0结果为0,否则结果为1。



学习的时间不一定要特定安排
原文地址:https://www.cnblogs.com/zhongzheng123/p/5278195.html