1.运算符分类
运算符指明对操作数的运算方式:有单目运算符、双目运算符和三目运算符;运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
2.运算符优先级
Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。表 1 列出了所有的运算符的优先级以及结合性。
优先级 运算符 结合性
1 ()、[]、{} 从左向右
2 !、+、-、~、++、-- 从右向左
3 、/、% 从左向右
4 +、- 从左向右
5 «、»、>>> 从左向右
6 <、<=、>、>=、instanceof 从左向右
7 ==、!= 从左向右
8 & 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 =、+=、-=、=、/=、&=、|=、^=、~=、«=、»=、>>>=
从右向左
3.位运算符
与(&):相同位的两个数字都为1,则为1;若有一个不为1,则为0
非(~):非0得1,非(非0)得0。
或(|):相同位只要一个为1即为1。
异或(^): 操作的结果是如果某位不同则该位为1, 否则该位为0。
4.条件运算符
表达式:关系表达式 ? 表达式1 : 表达式2
求解关系表达式,根据关系表达式的布尔值决定取值:关系表达式的值为true时取表达式1的值;关系表达式的值为false时取表达式2的值。
5.逻辑运算符
优先级:非 、与 、或。
同级运算从左到右。
6.位和逻辑
&和&&、|和||:两者都可以进行逻辑运算,但对于&&和||,Java只看第一个操作数的值,对于&&,如果第一个值为false,那么第二个不再计算,如果第一个值为true,那么还要计算第二个值;对于||,如果第一个值为false,那么还要计算第二个值,如果第一个值为true,那么第二个值不再计算;对于&和|操作符,两边无论如何都计算。