当前位置: 首页 > 面试题库 >

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

巢德华
2023-03-14
问题内容

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


问题答案:

那是微优化和过早的html" target="_blank">优化,这是邪恶的。相当担心有关代码的可读性和可维护性。如果有两个以上的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,但是代码的可维护性至少要好得多。



 类似资料:
  • 主要内容:if 结构,if-else 结构,多条件 if-else-if 语句,嵌套 if 的使用Java 支持两种选择语句:if 语句和 switch 语句。其中 if 语句使用布尔表达式或布尔值作为分支条件来进行分支控制,而 switch 语句则用于对多个整型值进行匹配,从而实现分支控制。这些语句允许你只有在程序运行时才能知道其状态的情况下,控制程序的执行过程。如果你没有 C/ C++ 的编程背景,你将会为这两个语句的强大功能和灵活性而感到吃惊。 选择结构(也叫分支结构)解决了顺序结构不能

  • HashMap本质上具有O(1)性能,而开关状态可以具有O(1)或O(log(n)),具体取决于编译器是否使用表开关或查找开关。 可以理解,如果switch语句是这样写的, 然后,它将使用一个表开关,显然比标准HashMap具有性能优势。但是如果switch语句是稀疏的呢?这是我要比较的两个例子: . 什么会提供更多的吞吐量,查找开关还是HashMap?HashMap的开销是否会在早期给查找开关带

  • Swift 条件语句 一个 if 语句 后可跟一个可选的 else if...else 语句,else if...else 语句 在测试多个条件语句时是非常有用的。 当你使用 if , else if , else 语句时需要注意以下几点: if 语句后可以有 0 个或 1 个 else,但是如果 有 else if 语句,else 语句需要在 else if 语句之后。 if 语句后可以有 0

  • else语句可以与if语句结合使用。 else语句包含else语句中的条件表达式解析为0或FALSE值时执行的代码块。 else语句是一个可选语句, else后面最多只能有一个else语句。 语法 (Syntax) if...else语句的语法是 - if expression: statement(s) else: statement(s) 流程图 (Flow Diagram) 例

  • 问题内容: 我没有真正的运气可以通过使用Google来获得这种比较的简洁答案,我想先问一下,而不是自己进行耗时的评估。 我相当确定使用Enums的switch语句将比if-then-else语句执行得更快,尽管是否存在显着差异是另一个问题。 有人可以帮我一下吗? 感谢大家的快速反应,我会在以后的项目中牢记这一点。 问题答案: 是的,是的,因为一般而言,switch语句的运行速度比if / else

  • 首先,我发现了另外两条有类似问题的线索。问题在于,他们没有为字符串使用正确的等号,也没有为他们的特定问题正确设置if语句的格式。 在我的任务中,我需要创建一个名为“猪”的游戏,玩家与计算机对决,在掷骰子时先获得100分。如果玩家在一个回合中掷1,他们不会得到额外的分数。如果玩家掷两个1,那么他们将失去所有分数。我还没有对电脑的回合进行编码,只是专注于玩家。请告诉我我做错了什么。提前非常感谢。 我的