假设"value"是任何整数:是值++直接等价于value = value + 1;?

-1 java expression operands

我知道两者的价值是相同的(比如说3到4).但是,计算机是否将两者视为相同,它们是否都被视为表达式?

提前致谢!

SLa*_*aks 8

两者都是,除了(value++)评估旧值,而(value = value + 1)评估为新值.表达式中
的直接等价物(value = value + 1)(++value).

请注意,它们都不是线程安全的.

为了增加乐趣,这里有两个更相同的选项:

value += 1;
value -= -1;
Run Code Online (Sandbox Code Playgroud)

  • 只要`value`是一个简单的变量或简单的数组元素引用就是真的.如果它类似于`method(args).field`,其中`method(args)`返回一个对象引用,则`++ method(args).field`调用该方法一次,而`method(args).field =方法(args).field + 1`调用它两次. (2认同)