逻辑运算符用于连接布尔型表达式。&&(与),||(或),!(非)。优先级从高到低为!(非),&&(与),||(或)。结合性均为从左到右。
其中,&&(与),||(或)又称为短路运算符,即一旦能够明确无误地确定整个表达式的值,就不会再计算表达式剩余的部分了。
- op1 && op2 ,当op1为false时,&&运算符在运算时不再计算op2的值,直接就得出op1 && op2的结果是false
- op1 || op2, 当op1为true时,||运算符在运算时不再计算op2的值,直接就得出op1 || op2的结果是true。
- "&" 和"&&" 的区别,单个与操作的符号&用在整数上是按位与,用在布尔型变量上跟&&功能类似,区别如下。
单个"&",左边无论真假,右边都进行计算。
双个"&",左边为假,右边不进行计算。
在Java中不同于数学的逻辑表达 3<X<5 ,java 中应该写成 x>3 & x<5 。 - "|"和"||" 的区别:
单个"|",左边无论真假,右边都进行计算。
左移与右移
- (>>):有符号右移
- (>>>):无符号右移
- <<:左移
- <<<:没有这种运算符号
==
==优先级高于三目运算符,三目运算符是从右向左执行的
- boolean=true?false:true==true?false:true
- boolean=true?false:(true==true)?false:true
- boolean=true?false:(true?false:true)
- boolean=true?false:false
- .boolean=false