“x = x = ..”(双等于/赋值)是否意味着什么特别的?

时间:2014-09-06 22:27:04

标签: java syntax variable-assignment

在用Java编程的服务器中,我发现了这个陈述:

buffer = buffer = new byte[bufferSize];

我不明白的是"缓冲区="说了两次。

这段代码不会完全相同吗?

buffer = new byte[bufferSize];

感谢。

2 个答案:

答案 0 :(得分:3)

Java赋值(=)从右到左进行评估,

  • 首先将buffer分配给new byte[bufferSize]
  • 然后将buffer分配给buffer
  • 的值

虽然第二个陈述完全符合您的预期。 buffer被分配到new byte[bufferSize]

编译器可能会优化它。

答案 1 :(得分:1)

两者之间没有区别。这是一个错字。