Java 是不是;x=x=…”;(双等于/赋值)有什么特别的意思吗?

Java 是不是;x=x=…”;(双等于/赋值)有什么特别的意思吗?,java,syntax,variable-assignment,Java,Syntax,Variable Assignment,在用Java编程的服务器中,我发现以下语句: buffer = buffer = new byte[bufferSize]; 我不明白的是“buffer=”被声明了两次 这个代码不会做完全相同的事情吗 buffer = new byte[bufferSize]; 谢谢。两者没有区别。这是一个打字错误。两者没有区别。这是一个输入错误。Java赋值(=)是从右向左计算的,所以 第一个缓冲区分配给新字节[bufferSize] 然后将buffer分配给buffer 而第二句话正是你所期待的缓冲

在用Java编程的服务器中,我发现以下语句:

buffer = buffer = new byte[bufferSize];
我不明白的是“buffer=”被声明了两次

这个代码不会做完全相同的事情吗

buffer = new byte[bufferSize];

谢谢。

两者没有区别。这是一个打字错误。

两者没有区别。这是一个输入错误。

Java赋值(
=
)是从右向左计算的,所以

  • 第一个
    缓冲区
    分配给
    新字节[bufferSize]
  • 然后将
    buffer
    分配给
    buffer
而第二句话正是你所期待的<代码>缓冲区分配给
新字节[bufferSize]

编译器很可能会对此进行优化

Java赋值(
=
)从右向左求值,因此

  • 第一个
    缓冲区
    分配给
    新字节[bufferSize]
  • 然后将
    buffer
    分配给
    buffer
而第二句话正是你所期待的<代码>缓冲区分配给
新字节[bufferSize]


编译器很可能会对此进行优化

对我来说,这似乎是一个输入错误,但我可能错了。有时候,你只是想确保变量被分配了。;-)这意味着有人真的很困惑。(你应该认为这可能意味着编码在其他地方可能会出现的粗心大意。)谢谢,热舔。的确如此!对我来说,这似乎是一个输入错误,但我可能错了。有时候,你只是想确保变量被分配了。;-)这意味着有人真的很困惑。(你应该认为这可能意味着编码在其他地方可能会出现的粗心大意。)谢谢,热舔。的确如此!