Quelles sont les règles pour l'évaluation de l'ordre dans Java?

Je suis en train de lire quelques Java texte et a obtenu le code suivant:

int[] a = {4,4};
int b = 1;
a[b] = b = 0;

Dans le texte, l'auteur n'a pas donné une explication claire et l'effet de la dernière ligne est: a[1] = 0;

Je ne suis pas sûr que je comprends: comment l'évaluation se produire?

La confusion ci-dessous sur ce qui se passe signifie que vous ne devriez jamais le faire, comme beaucoup de gens auront à réfléchir sur ce qu'il fait réellement, au lieu d'être évident.
La bonne réponse à une question de ce genre est "ne fais pas ça!" La cession devrait être traitée comme une déclaration; l'utilisation de cession comme une expression qui retourne une valeur devrait porter une erreur du compilateur, ou un avertissement à tout le moins. Ne pas le faire.

OriginalL'auteur ipkiss | 2011-07-23