Подтвердить что ты не робот

Эффективность, лучше ли каждый раз вызывать длину данного массива или хранить длину в переменной и каждый раз вызывать эту переменную?

Я много раз называю длину данного массива, и мне было интересно, нужно ли продолжать его много раз звонить (50 или более раз в настоящее время, но он продолжает расти), или лучше просто сохранить длину в integer и использовать это целое число каждый раз.

Если я неясен в том, что я говорю, рассмотрим следующее:

У меня есть массив String:

String[] str = new String[500]; //The length is actually dynamic, not static

Конечно, я добавляю в него некоторые значения, но я все время нахожу всю длину строки в приложении:

int a = str.length;
int b = str.length;
int c = str.length;
int d = str.length;
int e = str.length;

и так далее... так лучше делать это: (производительность мудрая, не заботятся о памяти)

int length = str.length;
    int a = length;
    int b = length;
    int c = length;
    int d = length;
    int e = length;

Спасибо.

4b9b3361

Ответ 1

Нет никакой разницы. Вы не вызываете метод при доступе к длине массива. Вы только что прочитали внутреннее поле. Даже если вы вызвали метод, разница будет незначительной с текущими JVM.

Ответ 2

array.length обращается к полю в объекте массива, поэтому он не должен влиять на производительность.

Ответ 3

Что, по-вашему, сделает код более понятным?

JVM, вероятно, оптимизирует код, чтобы сделать то же самое. Даже если бы не разница, вероятно, была меньше 1 нано-секунды.