概念:Java的运算符代表着特定的运算指令,程序运行时将对运算符链接的操作数进行相应的运算
按照运算符的功能来分
(1)赋值运算符
(2)算术运算符
(3)关系运算符
(4)条件运算符
(5)逻辑运算符
(7)位运算符
(8)其他运算符
1.算术运算符(传说中的加减乘除)
+:加法;-:减法;*:乘法;/:除法(求商);%:除法运算符(求余)
当有不同类型时(遵循下图原则)
可以自己验证一下
2.关系运算符(用于比较大小,正确返回true,错误返回false):
(1)> 大于 (2)< :小于 (3)==:等于 (4)!=:不等于 (5)>=大于等于 (6)<=小于等于
当然如果是有些char类型也是可以比较的(按照ASCII表),如 'a'<'z',可以自己试一试
3.逻辑运算符(以上两种运算可能比较好懂,因为从小学就开始接触,但是这种运算就需要自己下功夫了)
(1)& 逻辑与 :都为true时,结果为true,否则为false
(2)| 逻辑或:有一个为true时,结果true,否则为false
(3)!逻辑非:取反操作,当是true时,取反为false,
(4)&&运算符:只有左侧的为true时,才计算右侧的逻辑表达式,否则直接返回运算结果为false(注意与“&”区分,“&”两边都计算)
来看一下&&和&的区别
&&:先计算左边括号里面的结果,为false,直接终止计算返回false
&:计算两边括号的值,在计算&,发现右边分母为0,报错,抛出异常
(5)|| 运算符,只有在其左侧为false时,才计算右侧的表达式,和上面一样的,否则直接返回true(注意和“|”的区别)
4.位运算符
(1)逻辑位运算符(在计算机世界里只认识0和1)
X | Y |
~X (取反) |
X&Y(按位与) |
X|Y(按位或) |
X^Y(异或) |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
~X(取反):0变1,1变0
X&Y(按位与):两者都为1,则为1,其他为0
X|Y(按位或):有一个为1,即为1
X^Y(异或):相同为0,不同为1
(2)移位运算符:
a<<b :左移;操作数a左移b位,低位补零,
如:
2<<2 :8;分析:2的2进制数是 0000 0010,左移4位为:0000 1000
a>>b:右移;a的二进制位右移b(正整数)位,高位补零(a原为正数),高位补1(a原为负数)
如:
4>>2:1;分析:4的2进制数是:0000 0100,右移两位 0000 0001 =1
a>>>b:无符号右移;a的二进制位右移b(正整数)位,高位补零
如:8>>>2:2;分析 8的2进制数是:0000 1000,右移2位 0000 0010=2
5.条件运算符:?
a>b?c:d ;如果a>b为true,返回c,反之返回false
6.自增/自减运算符
i++;先运算,后自增
++i;先自增,后运算
7.赋值运算符(就是数学中的等于号):=
=的运算符最低,当然还有组合运算符 如:a+=b,其实就是a=a+b
好的,运算符大致是这样,最后看下运算符的优先级: