В этом случае, почему бы вам не сделать обратный цикл:
for (int i = a.length - 1; i >= 0; --i) { ... }
Здесь есть 2 микрооптимизации: