Java中&和&&,|和||的区别(超详细讲解),细节请必会!
2023-06-13 09:12:13 时间
大家好,又见面了,我是你们的朋友全栈君。
文章目录
一、& 是与,&&是短路与
- && 是左边条件不满足就终止了,不会继续计算右边条件;而&是无论左边是否满足都会继续执行右边。
- 比如 a && b , 假如计算 a 是假 , 那么就不会继续计算b的真假值了;假如a是真,那么会继续计算b,当b也是真时,a&&b为真。
- 而 a & b , 无论a是真假,都会继续计算b的真假值。
二、| 是或,|| 是短路或
- 原理内跟上面差不多,a || b 只要 a为真时,那么整个表达式就是真了,不会继续计算b的真假值。
- 而 a | b , 无论a真假,都会继续计算b的值。
三、举例说明其区别
判断语句中为布尔类型,值只有 true 和 false(如果变量值为 0 就是 false,否则为 true)
举个例子,a=1 b=2 所以 a>0 这个值为true b>1 这个值为true b>2 这个值为 false 如 if(a>0&b>1) 我们可以得出 if(true&true),条件成立(true不为0,所以true&true不为0) 如 if(a>0&&b>1) 我们可以得出 if(true&&true),条件成立(&&两边操作数都非零,所以条件成立) 如 if(b>2&a>0) 我们可以得出 if(false&true),条件不成立(false为0,false&true为0,条件不成立) 如 if(b>2&&a>0) 我们可以得出 if(false&&a>0),条件不成立(&&左侧为false,&&运算到此结束,条件不成立)
可以看出 & 和 && 在判断语句中都可以实现“和”这个功能,不过区别在于 & 两边都运算,而 && 先算 && 左侧,若左侧为 false 那么右侧就不运算了。因此从效率上来说,判断语句中推荐使用 &&(换句话就是逻辑运算就老老实实用逻辑运算符,不然它为啥叫逻辑运算符呢?) 而 | 和 || 的比较与上类似,不做赘述。
总结:一般用 && 和 || 的较多
四、另外, & 和 | 还用于位运算中
- & 按位与操作,按二进制位进行”与”运算。运算规则:(有 0 则为 0)
0&0=0;
0&1=0;
1&0=0;
1&1=1;
- | 按位或运算符,按二进制位进行”或”运算。运算规则:(有 1 则为 1)
0|0=0;
0|1=1;
1|0=1;
1|1=1;
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156512.html原文链接:https://javaforall.cn
相关文章
- Java集合详解8:Java集合类细节精讲
- java 取余和取整_Java取整、取余
- nextline函数_Java中的nextline()函数与next()问题
- JAVA环境配置
- java出现中文乱码_JAVA中文显示乱码问题「建议收藏」
- java启动器_JAVA基础:Java 启动器如何查找类
- java public interface_Java 接口interface的基础[通俗易懂]
- java校验json格式_json格式校验
- 物业管理系统源码java_Java小区物业管理系统 源码报告下载
- Think in Java之多态
- JDK 19 / Java 19 正式发布,虚拟线程来了!
- Java入门代码_java编程自学网
- java事务_Java 事务详解[通俗易懂]
- closing connection java.nio.channels.ClosedChannelException
- java设计模式之单例模式详解架构师
- java中的System.arraycopy方法详解编程语言
- Java 连接 MySQL 数据库简易实现(java连mysql)
- Java监控Oracle性能的最佳实践(java监控oracle)
- Java操作Oracle数据库:实现数据库连接与访问(java连接oracle数据库)
- java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors详解编程语言
- 策略解析Java中Redis的过期策略(redisjava过期)
- 策略实施Redis Java过期策略方法研究(redisjava过期)
- 清理Redis中Java实现数据过期清理(redisjava过期)
- Java技术封装Redis,打造高效数据处理系统(java封装redis)
- Java与Oracle的连接方式(java连oracle)
- 项目Java项目中展现Redis新型性能优势(redis运用在java)
- java集合框架arrayblockingqueue应用分析
- Java中Runnable和Thread的区别分析
- java解决Eclipse挂掉问题的方法