运算符是一元、二元还是三元,要看它要求有几个数参加运算
比如"++"运算符,只需要一个数据单元参加运算,如++a,它就是一元运算符;
而"+"、"-"等运算符,如a+b,要求有两个数据单元参加运算,它就是二元运算符;
"?:"运算符要求三个运算单元,如(ab)?c:d,它就是三元运算符。//判断x的值是否大于5
y=x>5?x:-x; 如果大于5则y=x,不然y=-x;
与&& 或|| 非!
//短路运算 int c =5; boolean d = ((c<4)&&(c++<10)); System.out.println(d); System.out.println(c);
输出结果:false
5
A=0011 1100
B=0000 1101
A&B = 0000 1100 与:0相同等于0 不相同等于0 1相同等于1
A|B = 0011 1101 或 :0相同等于0 1相同等于1 不相同等于1
A^B = 0011 0001 异或:相同等于0 不同等于1
~B = 1111 0010 取反:取反
<<左移 >>右移
System.out.println(2<<3)
2 * 2 * 2 * 2 = 16
2左移3位
<< * 2 >> /2
用位运算符效率高,直接接触底层算法
字符串连接符 : 空的字符串+a+b
把int a,b转换为字符串,并且来接起来
字符串如果放后面,则+代表相加的意思
+= -= *= /=
条件运算符又是三元运算符
?:
x?y:z
如果x是true 则返回y,否则返回z
图片来源于(Java运算符及优先级(全)_冰湖一角的博客-CSDN博客)