Java / Android代码优化:Java是否在构建时删除无法访问的代码

时间:2011-01-31 05:41:37

标签: java android optimization

请看一下这段代码android示例:

private static final boolean aBoolean = false;

...

if(aBoolean){
   //do something like logs
}

在这种情况下,由于aBoolean的值为false并且它在运行时无法更改,因此//在构建时是否会忽略某些类似于logs语句的内容,或者是否仍会构建它并且每次它都将进行评估if?

我正在尝试找到像预处理器#DEFINE #IF这样的行为...这样当我编码时我得到了我的日志,当我发布时,我切换了一个值,我的所有调试代码都被完全忽略了。 / p>

(我也想指出我的问题是面向Android的,所以如果Java和Android之间存在差异,请告诉我)

2 个答案:

答案 0 :(得分:3)

完全可以找到检查变量以进行日志记录。即使代码没有得到优化,检查一个布尔条件几乎是一个无操作,你就是在过早优化。

但要回答你的问题,它可能会得到优化。

答案 1 :(得分:-2)

如果语句无法访问,这将始终给出编译时错误.....

例如。如果你使用return statemnt b4任何代码,这将给出编译时错误。

但是如果你使用这种类型的代码

如果(aBoolean){    //做一点事 }

java不会避免这些,或者不会被java删除........