这里我主要和大家一起讨论if语句是否可以优化,主要是测试if语句的判断条件用boolean好,还是用int好?为什么讨论这个?以前我看过有人说用整形比较代替boolean值。所以本人写了如下代码做测试。
package Optimize;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class ifTest extends MIDlet {
public ifTest() {
super();
// TODO Auto-generated constructor stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
boolean i = true;
int j = 0;
long timer = 0L;
timer = System.currentTimeMillis();
for (int k = 1000000; k > 0; k--) {
if (i);
}
System.out.println(System.currentTimeMillis() - timer);
timer = System.currentTimeMillis();
for (int k = 1000000; k > 0; k--) {
if (j == 0);
}
System.out.println(System.currentTimeMillis() - timer);
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
}
在各自循环判断一百万次后,控制台输出的两个值很接近,只有几十毫秒的差值,该优化方案并不可行。