открыть DataReader, связанный с этой командой

Этот ответ с точки зрения C #, но я думаю, что то же самое относится к Java.

В C #, идиома

for (int i = 0; i < a.length; i++) {    ...}

распознается как итерация массив, поэтому проверка границ исключается при доступе к массиву в цикле, а не к каждому доступу к массиву.

Это может быть или не быть распознано с помощью кода, например:

for (int i = 0, n = a.length; i < n; i++) {    ...}

или

n = a.length;

for (int i = 0; i < n; i++) {   ...}

. Насколько эта оптимизация выполняется компилятором или JITter, которого я не знаю, и, в частности, если это выполняется JIT, я ожидаю, что все 3 будут генерироваться один и тот же собственный код.

Однако, первая форма также, возможно, более читаема людьми, поэтому я бы сказал, что с этим согласен.

1
задан bahman parsamanesh 2 March 2019 в 06:46
поделиться