В духе последнего подкаста , где Джоэл упомянул, что он хотел бы задать несколько простых вопросов с возможно интересными ответами ...
В средах, в которых мы должны сегодня программировать, мы не можем полагаться на порядок выполнения наших операторов языка. Это правда? Должны ли мы быть обеспокоены?
Будет ли 30 GOTO 10 всегда переходить к 10? *
* Я не использовал 20 специально;)
[править] для четырех человек, проголосовавших за закрытие этого вопроса ...
"Компиляторы времени выполнения используют информацию профилирования, чтобы помочь оптимизировать компилируемый код. JVM разрешается использовать информацию, специфичную для выполнения, для создания лучшего кода, что означает, что метод компиляции M в одной программе может генерировать код, отличный от компиляция M в другом "
(из практики параллелизма Java, 2006, Гетц и др.)
.. взгляните на «преобразование мономорфного вызова»
[править]
и другое редактирование, ваш процессор может поменять местами порядок выполнения операторов ...