代码之家  ›  专栏  ›  技术社区  ›  Hamy

Java中的“=”意味着什么?

  •  3
  • Hamy  · 技术社区  · 14 年前

    注意,我的问题不是关于 != 但是 |=

    一个使用示例是 here

    我认为 x |= y 是一样的 x = x | y 但我找不到确认文件,想确定一下

    谢谢

    4 回复  |  直到 14 年前
        1
  •  4
  •   Phil Helix    14 年前

    是的,它是按位包含或赋值: http://www.cafeaulait.org/course/week2/03.html

        2
  •  7
  •   L. Cornelius Dol    14 年前

    这是一个按位“或”加上的赋值,所以您的假设是完全正确的。

        3
  •  3
  •   BjornS    14 年前

    更准确地说,x=y实际计算为x=x(y)。

    下面是一个有趣的例子,说明为什么这一点很重要。

    int c = 2;
    c %= c++ * ++c;
    

    有趣的结果是它会被写为

    c = c % (c++ * ++c);
    

    Java规范告诉我们,JVM将首先看到初始C并存储它,前面的任何东西都不会对它产生影响,因此C++和++C实际上不会影响计算的结果。它总是c=2%,等于2:。

        4
  •  2
  •   Dennis C    14 年前