美文网首页
Java中&与&&、|与||的区别与联系

Java中&与&&、|与||的区别与联系

作者: taoguan | 来源:发表于2019-10-18 21:54 被阅读0次

前言

Java中逻辑操作符有&&(与)、||(或)、!(非),按位操作符有&(与)、|(或)、~(非)、^(异或)。它们长得很像,不过它们有很大的区别,逻辑操作符主要面向的是boolean数据的运算,而按位操作符主要是用来操作整数基本数据类型中的单个"比特"(bit),即二进制位。但是,它们也有一些联系,它们都能操作boolean数据,不过并不是完全一致。


image.png

&(与)与&&(短路与)的相同与不同

相同点:

在程序中,当所有表达式的判断结果为true时,则结果才为真,返回true,否则,只要有其中一个表达式为假,结果都为false。

不同点:

  • & 当前面的表达式为假的时候,程序还是会执行后面的表达式,再得出false结果。
  • && 当前面的表达式为假时,程序会停止执行后面的表达式(即短路),结果仍是false。

例如:


image.png

输出结果为:


image.png

|(或)与||(短路或)的相同与不同

相同点:

在程序中,当有其中一个表达式为true时,结果都为true。

不同点:

  • | 当遇到类型为true的表达式时,程序还会继续向后走, 最后结果为true。
  • || 当遇到类型为true的表达式时,程序不会向下走,但是最终结果还是true。

例如:


image.png

输出结果为:


image.png

结语

&(与)与&&(短路与)、# |(或)与||(短路或)都可以操作boolean数据,不过它们有是否短路的区别,这点在开发中需要牢记,对boolean数据的判断,尽量采用逻辑操作符&&(与)、||(或)、!(非)。

相关文章

网友评论

      本文标题:Java中&与&&、|与||的区别与联系

      本文链接:https://www.haomeiwen.com/subject/zjbwmctx.html