动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

详解Java运算符的优先级

05-19 11:18 6413浏览
举报 T字号
  • 大字
  • 中字
  • 小字

在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。

相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

基本的优先级需要记住:

  • 指针最优,单目运算优于双目运算。如正负号。
  • 先乘除(模),后加减。
  • 先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2)) & 7.
  • 逻辑运算最后计算。

运算符优先级决定了表达式中运算执行的先后顺序,通常优先级由高到底的顺序依次是:增量和减量运算→算术运算符→比较运算→逻辑运算→赋值运算。Java中常用的运算符的优先级如下图所示:

级别为1的优先级最高,级别11的优先级最低。比如,x = 7 + 3 * 2 得到的结果是13“先乘后加”。

当两个运算符拥有同样优先级时跟代数的四则运算一样,从左到右依次执行表达式。当要表示一个比较复杂的运算表达式时,最好多使用小括号,可以使用表达式更加清晰,对于一些比较复杂的,尽量可以分开多个步骤,这样虽然可能会降低效率,但是可以提高代码的可读性。比如下面这个例子:

int i=1,j=2;
int a=i+++j+++i++;
System.out.println(a);

看着就让人头晕了,我们可以修改以下这样。

int a=(i++)+(j++)+(i++);

综上所述,Java运算符的优先级也就一目了然了,特别是Java运算符的优先级表,能够很大程度上帮助我们做好Java运算符的优先级排序,当然,在Java中也会出现很多的Java运算符混淆在一起的复杂情况,我们还是需要掌握一定的规则之后,随机应变,这也是动力节点在线的视频课程中教导大家的。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵652
程序员代码小兵652

113篇文章贡献392215字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消