Java支持的运算符:算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、其他运算符;
算术运算符
算术运算遵循四则运算法则,可以嵌套任意的括号。算术运算符用在数学表达式;
加法运算符 + 减法运算符 -
乘法运算符 * 除法运算符 /
取余运算符 % 自增运算符 ++
自减运算符 --
自增自减运算符只需要一个操作数;
前缀自增自减运算(++a,--a):先进行自增或自减运算,再进行表达式的运算;
后缀自增自减运算(a++,a--):先进行表达式运算,再进行自增或自减运算;
浮点数只能进行加减乘除这类数值运算,不能做位运算和移位运算;
关系运算符
== 若两个操作数的值相等为真,否则为假;
!= 若两个操作数的值不相等为真,否则为假;
> 左边操作数的值大于右边操作数的值为真,否则为假;
< 左边操作数的值小于右边操作数的值为真,否则为假;
>= 左边操作数的值大于或等于右边操作数的值为真,否则为假;
<= 左边操作数的值小于或等于右边操作数的值为真,否则为假;
位运算符
Java支持位运算,对所有的位进行按位运算;
按位与运算符 &
按位或运算符 |
按位异或运算符 ^
按位取反运算符 ~
计算机中的整数总以二进制的形式表示,可以对整数进行位移运算,位移运算包括:左移、右移、无符号右移;
无符号左移运算 <<
无符号右移运算 >>
带符号右移运算 >>> 将运算符左侧的操作数按运算符右侧指定的位数向右移动相应的位数,移动出现的空位用0进行填充;
逻辑运算符
逻辑与运算符 &&
逻辑或运算符 ||
逻辑非运算符 !
逻辑与运算符短路:
如果逻辑与运算符的第一个操作数值已经确定为假,则没有必要对第二个操作数进行判断,运算的结果必定为假,这种情况被称为短路;
赋值运算符
=
+=
-=
*=
/=
%=
<<=
>>=
&=
|=
^=
条件运算符(expression? value if true: value if false)
条件运算符又称为三元运算符,该运算符有三个操作数,需要根据表达式的值来决定运算结果;
variable x=(expression)? value if true :value if false
instancof运算
该运算符用于检查对象实例是否为某个特定类型(类类型/接口类型);
若运算符左侧变量所指向的对象是运算符右侧的类或接口的一个对象,则结果为真;
若运算符左侧的对象与右侧的类型兼容,运算结果也是true;
instanceof运算符使用格式:
(Object reference variable)instanceof (class/interface type)
运算符的优先级
当多个运算符出现在一个表达式时会涉及到运算的顺序,运算的顺序会直接影响到运算结果,引入运算符的优先级便可以解决这个问题;
运算符 | 操作符 |
后缀 | () [] . |
后缀自增/自减 | expression++ expression-- |
前缀自增/自减 | ++expression --expression + - ~ ! |
乘除 | * / % |
加减 | + - |
移位 | >> << >>> |
关系运算 | > >= < <= == != |
位逻辑运算 | & ^ | |
逻辑运算 | && || |
条件运算 | expression? value if true: value if false |
赋值运算 | = += -= *= /= %= |