JLS 15.26指定:
有12个赋值运算符;在语法上都是右关联的(它们从右到左分组)。因此,a = b = c意味着a =(b =
c),它将c的值分配给b,然后将b的值分配给a。
特德·霍普(Ted Hopp)的回答表明,Sun的javac并没有遵循这种行为,这可能是一种优化。
由于此处存在线程,因此method1的行为将不确定。如果Sun的编译器使行为恒定,那么它就不会脱离未定义的行为。

JLS 15.26指定:
有12个赋值运算符;在语法上都是右关联的(它们从右到左分组)。因此,a = b = c意味着a =(b =
c),它将c的值分配给b,然后将b的值分配给a。
特德·霍普(Ted Hopp)的回答表明,Sun的javac并没有遵循这种行为,这可能是一种优化。
由于此处存在线程,因此method1的行为将不确定。如果Sun的编译器使行为恒定,那么它就不会脱离未定义的行为。