短路逻辑运算符有哪些:
&&——代表短路与
|| —— 则代表短路或
! —— 代表非
& 表示按位与,
无论什么情况都会同时计算运算符两边的表达式
&& 表示短路与
如果前面的表达式为false,那么无论后面的表达式结果如何,
都不会去计算后面表达式的值。因为后面表达式的值不会影响结果
所以, System.out.println((1>2) && (5/0>1))
这样的代码在编译时也不会出现编译错误,因为短路与(&&)判定了运算符左边表达式得到的值为false,所以这个输出的结果就已经是false了,不需要计算右边的表达式。
同时注意:在实际使用中我们很少使用按位与,更多的是使用短路与
|| 表示短路或
如果运算符的左右部分有一侧的结果为true,那么这个表达式的输出结果就会是true,当有一个部分为true的时候,另一部分的表达式将不会被运行和计算。
所以, System.out.println((1<2) || (5/0>1))
这样的代码在编译时也不会出现编译错误,因为短路或(||)判定了运算符左边表达式得到的值为true,所以这个输出的结果就已经是true了,不需要计算右边的表达式
!:取反
当!的个数是奇数个的时候,结果相反
当!的个数是偶数的时候,结果不变
可能会遇到的面试题:
& 与 && 的区别:
- & 表示按位与,无论什么情况都会同时计算运算符两边的表达式
- && 表示短路与,如果前面的表达式为false,那么无论后面的表达式结果如何,都不会去计算后面
表达式的值。因为后面表达式的值不会影响结果 - && 开发中使用,&基本不使用
- &常用与位运算操作,效率高