逻辑运算符
与 && 两个为真,结果为真;只要有一个为假,结果为假;
或 || 只要有一个为真,结果为真;
非 !() 括号内为真,结果为假;括号内为假,结果为真。
如下例
public class Operator2 {
public static void main(String[] args) {
// && || !
boolean a = true;
boolean b = false;
System.out.println(a && b);
System.out.println(a || b);
System.out.println(!(a&&b));
}
}
//结果如下
false
true
true
Process finished with exit code 0
短路运算
如下例所示,当“或“运算的左侧值显示为真时,结果显然为真,或者说当”与”运算左侧值为假时,结果显然为假,则右侧值不需要计算,即为短路计算。
public class Operator2 {
public static void main(String[] args) {
int a1 = 1;
int b1 = 2;
System.out.println((a1 < 0) && (++b1 < 2));
System.out.println((a1 < 2) || (++b1 < 2));
System.out.println(a1);
System.out.println(b1);
}
}
//结果如下
false
true
1
2
Process finished with exit code 0
上述例子中语句++b1中,若语句执行,b1的结果输出应为4,单结果显示为2,即语句进行了短路运算。
位运算
位运算符用来对二进制位进行操作,位运算符中,除 ~ 以外,其余均为二元运算符。操作数只能为整型和字符型数据。(百度百科),具体为以下6种:
与 a&b 两个为1,结果为1;只要有一个为0,结果为0;
或 a|b 只要有一个为1,结果为1;
异或 a^b 两个不同,结果为1;两个相同,结果为0;
非 ~a 取反集。
左移 a<<b 将a代表数值所代表的二进制的数的位向左移动b个位数;
右移 a>>b 将a代表数值所代表的二进制的数的位向右移动b个位数;
A = 0001 1010
B = 1100 0011
-------------
A & B = 0000 0010
A | B = 1101 1011
A ^ B = 1101 1001
~ B = 0011 1100
与、或、异或和非4种算例如上所示,这里着重讲解下左移和右移。
在二进制运算中,若数满足2则进入下一位,如下例所示,可以得出,数值向左移动一个位数值整体大小乘以2,反之除以2。如下例所示:
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
public class Operator2{
public static void main(String[] args){
System.out.println(2<<3);
System.out.println(3<<3);
System.out.println(16>>1);
}
}
//结果如下
16
24
8
Process finished with exit code 0
条件运算符
a ? b : c 即 如果a成立,则为b,否则为c。
扩展赋值运算符
a+=1 a = a+1
a-=1 a = a-1
a*=1 a = a×1
a/=1 a = a/1
运算优先级
运算原则为一元运算符优先,其次为二元运算符,最后为三元运算符,具体为下表:
强力推荐!本文学习教程网址https://www.kuangstudy.com/