Precedence de ++ y - operadores en Java
Leí del tutorial oficial de Java que el prefijo y el postfix ++ tienen diferentes precedentes:
postfix: expr ++ expr -
unary: ++ expr --expr + expr -expr ~!
e acuerdo con el tutorial, ¿no debería esto
d = 1; System.out.println(d++ + ++d);
print out 6 d++
hace d 2,++d
hace que sea 3) en lugar de 4?
Sé la explicación de++d
siendo evaluado de antemano, pero sid++
tiene mayor prioridad que++d
, ¿por qué nod++
siendo evaluado por primera vez? Y lo que es más, en qué caso deberíad++
muestra que tiene mayor prioridad?
EDITAR
Intenté lo siguiente:
d = 1; System.out.println(++d * d++);
Devuelve 4. Parece que debería ser 2 * 2, en lugar de 1 * 3.