最近闲来无事,就测测switch 和if else的性能区别
我的电脑是i3的。
public static void main(String[] args) {
// TODO Auto-generated method stub
long start = System.currentTimeMillis();
for (int i = 0; i < 1000000; i++) {
int k = 1;
if (k == 1) {
System.out.println("1");
} else if (k == 2) {
System.out.println("2");
} else if (k == 3) {
System.out.println("3");
} else if (k == 4) {
System.out.println("4");
} else if (k == 5) {
System.out.println("5");
} else if (k == 6) {
System.out.println("6");
}
}
long end1 = System.currentTimeMillis() - start;
long start2 = System.currentTimeMillis();
for (int i = 0; i < 1000000; i++) {
int k = 1;
switch (k) {
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
case 4:
System.out.println("4");
break;
case 5:
System.out.println("5");
break;
case 6:
System.out.println("6");
break;
default:
break;
}
}
long end2 = System.currentTimeMillis() - start2;
System.out.println(end1 + "===" + end2);
}
当k=1的时候
4832===4731
当k=2的时候
4937===4812当k=3的时候
4982===4813当k=4的时候
5039===4812当k=5的时候
5062===4888
当k=6的时候
5070===4882
从以上结果来看,排除计算机的其他任务处理,if else 随之要判断的考后,那么那所花费的时间就越多,switch基本上就没有什么变化,
如果想优化代码的话,还是尽量采用采用switch。但是对于小流量的,还是差不多的