Инструкции по приоритету оператора Java

Приоритет оператора Misunderstanding Java является источником часто задаваемых вопросов и тонких ошибок. Я был заинтригован узнать, что даже в Спецификации языка Java говорится, "Рекомендуется, чтобы код не положился кардинально на эту спецификацию". JLS §15.7 Предпочтение ясного умному, там какие-либо полезные инструкции в этой области?

Вот много ресурсов по теме:

Дополнения или приветствующиеся исправления.

20
задан 9 revs, 2 users 99% 23 May 2017 в 12:34
поделиться

2 ответа

Что касается «реального мира», он, вероятно, справедливо сказать:

  • Достаточно программисты знают, что умножение / разделение предпринимают приоритет над добавлением / вычитанием, как это математически Конвенция
  • вряд ли никаких программистов может вспомнить Любое из других правил приоритета

, помимо специфического случая * / против + - , я бы действительно просто использовал брекеты для явного определения приоритета.

20
ответ дан 30 November 2019 в 00:19
поделиться

Другой связанный источник ошибок - это то, как накапливаются ошибки округления. Это не проблема порядка приоритета операторов как таковая, а источник удивления, когда вы получаете другой результат после перестановки операндов арифметически эквивалентным способом. Вот версия книги Дэвида Голдберга «Что должен знать каждый компьютерный ученый об арифметике с плавающей точкой» на сайте sun.com .

5
ответ дан 30 November 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: