Ответ 1
Нет никакой разницы. Вы не вызываете метод при доступе к длине массива. Вы только что прочитали внутреннее поле. Даже если вы вызвали метод, разница будет незначительной с текущими JVM.
Я много раз называю длину данного массива, и мне было интересно, нужно ли продолжать его много раз звонить (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;
Спасибо.
Нет никакой разницы. Вы не вызываете метод при доступе к длине массива. Вы только что прочитали внутреннее поле. Даже если вы вызвали метод, разница будет незначительной с текущими JVM.
array.length обращается к полю в объекте массива, поэтому он не должен влиять на производительность.
Что, по-вашему, сделает код более понятным?
JVM, вероятно, оптимизирует код, чтобы сделать то же самое. Даже если бы не разница, вероятно, была меньше 1 нано-секунды.