Tag: 符operator precedence

为什么i | = j | = k | =(j + = i) – – (k +++ k) – – (i = + j)== 11?

我在一个我开始研究的项目中遇到了这段代码。 最初的开发人员已经不再可用,我无法理解它。 k = (j = (i = 0) + 2) + 1; return i|= j|= k|= (j+= i) – – (k+++k) – – (i =+j); 它产生的值为11 。 这是如何运作的? 什么是=+运算符? 什么是+++运算符? 什么是- -运营商? 什么是|=运算符?

Java运算符优先级指南

误解Java运算符优先级是常见问题和微妙错误的来源。 我很想知道即使是Java语言规范也说,“建议代码不要严格依赖于这个规范。” JLS§15.7优先选择聪明 ,这方面有什么有用的指导方针吗? 以下是有关该主题的一些资源: JLS运营商 JLS优先级 Java词汇表 普林斯顿 Oracle教程 转化和促销 Java运算符优先级 评估顺序和优先顺序 Usenet讨论 欢迎增加或更正。