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