博客
关于我
JAVA运算优先级
阅读量:348 次
发布时间:2019-03-04

本文共 1143 字,大约阅读时间需要 3 分钟。

Java运算符优先级是编程中理解表达式执行顺序的关键。每当表达式中包含多个运算符时,运算符的优先级决定了运算顺序,从而影响最终结果。掌握运算符的优先级可以帮助开发者更好地组织代码,避免逻辑错误。

运算符可以根据优先级分为几大类:

  • 后缀运算符:包括括号 ()、数组索引 []、对象引用 . 和类型转换 ()。这些运算符通常按从左到右的顺序执行。
  • 一元运算符:包括加法 +、减法 -、逻辑非 !、否定 !~ 等。这些运算符通常从右到左执行。
  • 乘法运算符:包括乘法 *、除法 /、模运算 等。这些运算符按从左到右的顺序执行。
  • 加法运算符:包括加法 + 和减法 -。这些运算符同样按从左到右的顺序执行。
  • 移位运算符:包括右移 >>、右移双 >>> 和左移 <<、左移双 <<<。这些运算符按从左到右的顺序执行。
  • 关系运算符:包括大于 >>、小于 <、等于 = 等。这些运算符按从左到右的顺序执行。
  • 相等性运算符:包括等于 == 和不等于 !=。这些运算符同样按从左到右的顺序执行。
  • 按位运算符:包括按位与 &、按位异或 ^ 和按位或 |。这些运算符按从左到右的顺序执行。
  • 逻辑与运算符:包括逻辑与 &&,这些运算符按从左到右的顺序执行。
  • 逻辑或运算符:包括逻辑或 ||,这些运算符同样按从左到右的顺序执行。
  • 条件运算符:包括条件 ?,这些运算符按从右到左的顺序执行。
  • 赋值运算符:包括多种赋值运算符,如加法赋值 +=、减法赋值 -= 等,这些运算符按从右到左的顺序执行。
  • 逗号运算符:包括逗号 ,,,这些运算符按从左到右的顺序执行。
  • 在实际编码中,运算符的优先级决定了表达式的执行顺序。例如,表达式 x = 7 + 3 * 2; 中,乘法运算符的优先级高于加法运算符,因此会先计算 3 * 2,然后将结果加到 7 中,得到 x = 13

    需要注意的是,运算符的优先级并不是唯一的规则。小括号 () 是控制运算顺序的最高优先级工具。合理使用小括号可以清晰地定义运算顺序,避免因运算符优先级不明确而导致的歧义性问题。

    例如,表达式 a || b && c 中,逻辑或运算符的优先级低于逻辑与运算符,因此会先计算 b && c 再与 a 进行逻辑或运算。这样可以避免误解为 (a || b) && c

    在编写代码时,建议遵循以下原则:

    • 先括号后运算符:使用小括号明确运算顺序。
    • 先一元运算符后乘法:根据运算符的优先级规则,先执行乘法、除法、移位、按位运算等运算符。
    • 谨慎使用逻辑运算符:在逻辑运算符中,记得逻辑与运算符的优先级高于逻辑或运算符,并且逻辑非运算符的优先级最高。

    通过理解和遵循运算符的优先级规则,开发者可以更高效地组织代码,避免运算顺序导致的逻辑错误,提升代码的可读性和可维护性。

    转载地址:http://pzzr.baihongyu.com/

    你可能感兴趣的文章
    Nginx配置TCP代理指南
    查看>>
    Nginx配置——不记录指定文件类型日志
    查看>>
    nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    nginx配置全解
    查看>>
    Nginx配置参数中文说明
    查看>>
    nginx配置域名和ip同时访问、开放多端口
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置如何一键生成
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    Nginx配置文件nginx.conf中文详解(总结)
    查看>>
    Nginx配置负载均衡到后台网关集群
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>