java – Eclipse是否编译出未使用的局部变量?

请考虑以下代码:

 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应用程序时会删除所有未使用的变量.

点赞