一尘不染

Java中if / else与switch语句的相对性能差异是什么?

java

担心我的Web应用程序的性能,我想知道“ if / else”或switch语句在性能方面是否更好?


阅读 456

收藏
2020-03-05

共1个答案

一尘不染

那是微优化和过早的优化,这是邪恶的。相当担心有关代码的可读性和可维护性。如果有两个以上的if/else块粘合在一起或者其大小不可预测,那么你可能会考虑使用一个switch声明。

另外,你也可以使用Polymorphism。首先创建一些接口:

public interface Action { 
    void execute(String input);
}

并掌握其中的所有实现Map。你可以静态或动态地执行此操作:

Map<String, Action> actions = new HashMap<String, Action>();

最后,将if/else或替换为switch类似的内容(将琐碎的检查,如nullpointers放在一边):

actions.get(name).execute(input);

它可能比if/else或慢一些switch,但是代码的可维护性至少要好得多。

2020-03-05