Цитата (из Спецификация языка Java §15.7 ) должна читаться в контексте Порядок оценки . Как обсуждалось здесь , этот раздел касается порядка оценки , который не связан с оператором приоритет (или ассоциативность ).
Приоритет и ассоциативность влияют на структуру дерева выражений (то есть какие операторы действуют на какие операнды), в то время как «порядок вычисления» просто влияет на порядок, в котором дерево выражений пройдено при вычислении выражения. Порядок оценки (или «порядок обхода») не оказывает никакого влияния, если только некоторые подвыражения не имеют побочных эффектов, которые влияют на результат (или побочные эффекты) других подвыражений.
Например, если изначально x == 1, выражение ++x/++x
будет оцениваться как 2/3 (что соответствует 0), поскольку Java имеет порядок оценки слева направо. Если бы порядок вычисления в Java был справа налево, x был бы увеличен дважды до вычисления числителя, а выражение было бы оценено как 3/2 (что оценивается как 1). Если бы порядок оценки был неопределенным, выражение могло бы вычисляться для любого из этих результатов.
Цитируемая цитата вместе с ее контекстом ...
Язык программирования Java гарантирует, что операнды
операторы оцениваются в определенном порядке оценки,
а именно слева направо.
Рекомендуется, чтобы код не зависел от этой спецификации.
Код обычно более понятен, если каждое выражение содержит не более одной стороны
эффект, как его внешняя операция
... отговаривает читателя от зависимости слева направо порядка оценки Java (как в примере выше). Это не поощряет ненужные скобки.
Редактировать: Ресурс: Таблица приоритетов Java-оператора , которая также служит индексом для разделов JLS, содержащих синтаксическую грамматику, из которой выводится каждый уровень приоритета.