栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java优先级-强制转换和按位运算符

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java优先级-强制转换和按位运算符

这是由于Java中的运算符优先级和关联性是如何工作的。1个

不幸的是,Oracle
Java教程
仅提供了部分概述,并且Java语言规范也无济于事,因为它主要是通过声明以下内容来让操作员确定操作员的优先级:

运算符之间的优先级由语法产生的层次结构管理。

通常,表达式是从左到右计算的。就运算符优先级而言, 适用于下表2:

╔═══════╦══════════════╦══════════════════════╦═════════════════╗║ Level ║ Operator     ║ Description          ║ Associativity   ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 16    ║ []║ access array element ║ left to right   ║║       ║ . ║ access object member ║      ║║       ║ ()║ parentheses          ║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 15    ║ ++║ unary post-increment ║ not associative ║║       ║ --║ unary post-decrement ║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 14    ║ ++║ unary pre-increment  ║ right to left   ║║       ║ --║ unary pre-decrement  ║      ║║       ║ + ║ unary plus║      ║║       ║ - ║ unary minus          ║      ║║       ║ ! ║ unary logical NOT    ║      ║║       ║ ~ ║ unary bitwise NOT    ║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 13    ║ ()║ cast      ║ right to left   ║║       ║ new          ║ object creation      ║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 12    ║ * ║ multiplicative       ║ left to right   ║║       ║ / ║║      ║║       ║ % ║║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 11    ║ + -          ║ additive  ║ left to right   ║║       ║ + ║ string concatenation ║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 10    ║ << >>        ║ shift     ║ left to right   ║║       ║ >>>          ║║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 9     ║ < <=         ║ relational║ not associative ║║       ║ > >=         ║║      ║║       ║ instanceof   ║║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 8     ║ ==║ equality  ║ left to right   ║║       ║ !=║║      ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 7     ║ & ║ bitwise AND          ║ left to right   ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 6     ║ ^ ║ bitwise XOR          ║ left to right   ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 5     ║ | ║ bitwise OR║ left to right   ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 4     ║ &&║ logical AND          ║ left to right   ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 3     ║ ||║ logical OR║ left to right   ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 2     ║ ?:║ ternary   ║ right to left   ║╠═══════╬══════════════╬══════════════════════╬═════════════════╣║ 1     ║ = += -=      ║ assignment║ right to left   ║║       ║ *= /= %=     ║║      ║║       ║ &= ^= |=     ║║      ║║       ║ <<= >>= >>>= ║║      ║╚═══════╩══════════════╩══════════════════════╩═════════════════╝

对于您的特定问题,这意味着在强制转换操作周围无需放置任何括号,因为强制转换运算符的优先级

()
高于按位与
&
运算符的优先级(13级对7级)。


1我将其写成一个规范的答案,以解决有关Java中的运算符优先级和关联性的问题。我发现了很多现有的给出部分信息的答案,但是找不到完整的优先级和关联性表的概述的答案。
2运算符优先级和关联表摘自https://introcs.cs.princeton.edu/java/11precedence/。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410502.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号