默认语句的放置会影响Java的效率吗?是否有区别:
switch (a) {
case 0: return 0;
case 1: default: return -1;
case 2: return 2
...
case 99: return 99;
}
VS
switch (a) {
case 0: return 0;
case 1: return -1;
case 2: return 2;
...
case 99: return 99;
default: return -1;
}
答案 0 :(得分:2)
即使在最天真的实现中,这也不会产生性能上的差异,但是对于Java来说,你远离实际的机器代码,这将变成你绝对不应该尝试优化这个或任何其他类似的码。实际上,即使你编写了else-if
s的最愚蠢的级联,你仍然仍然有机会将JIT转换为基于超高速哈希查找的机器代码。
答案 1 :(得分:2)
不,它不会有所作为。为什么?因此:JVM何时知道必须使用default
正文?检查完所有其他情况后。因此,将default:
放在不会改变效果的特定位置。
答案 2 :(得分:0)
如果您编写快速测试程序,我不相信您会看到任何显着的性能改进。至少没有任何理由可以掩盖你的代码。我只是将默认情况保留在列表的最后一位,以使代码更具可读性。它可能比性能的微观改进(如果有的话)更重要
答案 3 :(得分:0)
没有。除了调试注释之外,switch语句的位置对生成的字节代码没有任何影响。