Бывают ситуации, когда обратный цикл может быть немного быстрее в Java. Вот тест , показывающий пример. Как правило, различие объясняется подробностями реализации в инструкциях увеличения / уменьшения или в инструкциях сравнения завершения цикла, как в контексте базовой архитектуры процессора. В более сложных примерах обращение цикла может помочь устранить зависимости и, таким образом, включить другие оптимизации или улучшить локальность памяти и кэширование, даже поведение сборки мусора.
Нельзя предполагать, что любой тип цикла всегда будет быстрее во всех случаях - потребуется эталонный тест, чтобы определить, какой из них работает лучше на данной платформе для конкретного случая. И я даже не рассматриваю, что компилятор JIT имеет к этому отношение.
В любом случае, это тот тип микрооптимизации, который может затруднить чтение кода без заметного повышения производительности. И поэтому лучше избегать их, если в этом нет особой необходимости, помните - «преждевременная оптимизация - корень всего зла».