Pourquoi x == (x = y) n'est-il pas identique à (x = y) == x?

Prenons l'exemple suivant: class Quirky { public static void main(String[] args) { int x = 1; int y = 3; System.out.println(x == (x = y)); // false x = 1; // reset System.out.println((x = y) == x); // true } } Je ne sais pas s'il y a un élément dans la spécification du langage Java qui dicte le...