Это похоже на возможную оптимизацию, которая называется CSE ;JVM
AFAIK делает это (но не уверен насчет Android).
Но это сильно зависит от того, что делает getName
, если он выделяет внутри себя другие объекты и делает некоторые другие вещи.К сожалению, я даже не могу сказать, как доказать , что я ошибаюсь или прямо здесь (возможно, придется провести расследование);честно говоря, у меня есть привычка делать это самостоятельно.Например:
for(int i=0;i<list.size();++i){
}
Я стараюсь всегда извлекать int size = list.size()
перед циклом;даже если это в моем понимании подлежит scalar replacement
оптимизации.