请考虑以下代码:
public String foo(){
String bar = doStuff();
return bar;
}
然后是:
public void test(){
doSomeLogicHere();
String result = foo();
}
请注意,在测试中,我在函数末尾得到一个名为result的String. Eclipse知道这是一个未使用的变量,因为它警告它.我想知道的是,这些字符串是否被编译出来,好像调用只是foo()而没有保存返回的字符串?如果我注释掉String result =当我不使用它时,我会减少内存消耗还是无关紧要,因为String仍然生成并在foo()中返回?
我在这样写的应用程序中有一些调试逻辑,我想知道是否值得注释掉所有字符串的发布/当我不使用它们时.
最佳答案 据我所知,编译器不会自动删除未使用的变量.这通常是优化器/混淆器的工作.
例如,在Android ProGuard中,在发布模式下构建Android应用程序时会删除所有未使用的变量.