a + = a ++ * a ++ * a ++ en Java. ¿Cómo se evalúa?

Me encontré con este problemaen este sitio web, y lo probé en Eclipse pero no pude entender cómo se evalúan exactamente.

    int x = 3, y = 7, z = 4;

    x += x++ * x++ * x++;  // gives x = 63
    System.out.println(x);

    y = y * y++;
    System.out.println(y); // gives y = 49

    z = z++ + z;
    System.out.println(z);  // gives z = 9

Según un comentario en el sitio web, x + = x ++ * x ++ * x ++ se resuelve en x = x + ((x + 2) * (x + 1) * x) que resulta ser cierto. Creo que me falta algo sobre la precedencia de este operador.

Respuestas a la pregunta(6)

Su respuesta a la pregunta