Рассмотрим следующий код:Занимает ли Eclipse неиспользуемые локальные переменные?
public String foo(){
String bar = doStuff();
return bar;
}
А потом:
public void test(){
doSomeLogicHere();
String result = foo();
}
Заметьте, что в test
я получаю строку с именем result
в конце функции. Eclipse знает, что это неиспользуемая переменная, поскольку она предупреждает об этом. Что мне интересно, так ли эти строки собираются, как если бы вызов был только foo()
без сохранения возвращенной строки? Если я прокомментировал String result =
, когда я его не использую, я бы уменьшил потребление памяти или не имеет значения, поскольку String все еще сгенерирован и возвращен в foo()
?
У меня есть логика отладки в приложении, которое я пишу именно так, и мне интересно, стоит ли комментировать все строки для выпуска/когда я их не использую.
у вас на самом деле есть две неиспользуемые переменные здесь - foo и bar. Ваша вторая строка теста() может просто сказать doStuff(). Если код не будет оптимизирован, распределение памяти будет находиться в стеке (а не куче) для двух локальных переменных (bar & result), и они будут распределены и де-распределены при абсолютно минимальных затратах. –
Разве это не плохой пример? метод 'foo()' может фактически делать что-то важное, но мы просто не используем его результат. – Sandy