Каков правильный приоритет математического выражения

Какова правильная последовательность математических операций в этом выражении в Java:

    a + b  * c / ( d - e )
1.    4    1   3     2
2.    4    2   3     1

Я понимаю, что результат одинаков в обоих ответах. Но я хотел бы полностью понять логику компилятора java. Что в этом примере выполняется первым - умножение или выражение в скобках? Ссылка на документацию, которая описывает это, была бы полезна.

ОБНОВЛЕНИЕ: Спасибо, ребята, за ответы. Большинство из вас пишут, что выражение в скобках вычисляется первым. После просмотра ссылок, предоставленных Гродригесом, я создал небольшие тесты:

int i = 2;
System.out.println(i * (i=3)); // prints '6'
int j = 2;
System.out.println((j=3) * j); // prints '9'

Может ли кто-нибудь объяснить, почему эти тесты дают разные результаты? Если выражение в скобках оценивается первым, я ожидал бы того же результата - 9.

14
задан bancer 26 October 2010 в 17:43
поделиться