优先级级数越低,级别越大。
1.算术运算符和算术表达式
- 加减运算符(+、-)
加减运算符为双目运算符,结合性(从左到右),优先级为4级。
- 乘除运算符(*、/)
乘除运算符为双目运算符,结合性(从左到右),优先级为3级。
- 自增、自减运算符(++、--)
自增、自减运算符为单目运算符, 优先级为2级。
- 算术表达式
算术符号和操作元连接起来、符合java语法规范的式子。
Java按运算符两边的操作元的最高精度保留结果的精度。
2.关系运算符和关系表达式
- 大小关系运算符(>、>=、<、<=)
双目运算,运算结果为boolean类型,优先级为6级。
- 等与不等关系(==、!=)
双目运算,运算符级别为7级。
- 关系表达式
结果为数值类型的变量或表达式可通过关系运算符形成关系表达式。
3.逻辑运算符和 逻辑表达式
- 逻辑"与"(&&)和逻辑 "或"(||)
双目运算符,优先级为11级和12级,结合性 (从左到右)
也被称为短路逻辑运算符(在进行运算时,如果第一个判断成功,就不去判断第二个运算)
- 逻辑"非"(!)
单目运算符,优先级为 2级,结合性(从右到左)
- 逻辑表达式
结果为boolean类型的变量或者表达式可以通过逻辑运算符形成逻辑表达式。
4.赋值运算符(=)和赋值表达式
- 双目运算符,优先级14级,结合性(从右到左)
5.移位运算符
- 左移运算符(<<)
双目运算符,运算时每左移一位,左边的高阶位上被移出抛弃,用 0填充右键的低位
- 右移运算符(>>)
双目运算符,每右移一位,右边低阶位被丢弃,并用0或1填充左边的高位,正数用0填充,负数用1填充。
对于(byte short int ),系统总会先计算n%32的结果,然后进行右移运算;
对于(long),,系统总会先计算n%64的结果,然后进行右移运算。
6.位运算
- 按位“与”(&)(双目运算)
如果对应位都是1,则结果为1,否则为0.
- 按位"或"(|)(双目运算)
如果对应位都是0,则结果为0,否则为1.
- 按位"非"(~)(单目运算)
如果对应位为0,则 结果为1.
- 按位"异或"(^)(双目运算)
如果两个对应位相同则为0,否则为1.
7.instanceof运算符
双目运算符,左边为对象,右边为类(判断该对象是不是此类产生的对象,返回TRUE或者 FALSE)
8.跳转语句(break,continue)
面试一问:break和continue区别?
如果执行break,则整个循环结束。
如果执行continue,则只是跳出本次的循环,转入下一次循环。