Java中的各个运算符的优先级顺序,如果说要背这个东西的话,说白了那只有可能是为了面试去背,这些东西要么是用的时间长了自然就熟练了,要么记不住也可以来查阅。估计只有面试中会出一些刁钻的题目来考验,比如
a>b?a>c?a:c:b>c?b:c
上面这条语句我没有加括号,但是也是可以编译的,并没有语法错误,但是面试/笔试中可能会问这个语句的作用是什么
当然实际开发中肯定是会加上括号,变成下面这样
(a>b)?(a>c?a:c):(b>c?b:c)
作用是获取a b c三个数中最大的数
优先级 | 描述 | 运算符 |
1 | 括号 | ()、[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、--、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |