蝴蝶刀刀
短路评估意味着在评估布尔表达式(逻辑AND和OR)时,只要找到满足或否定该表达式的第一个条件,就可以立即停止。例如,假设您正在评估OR带有多个子表达式的逻辑,每个子表达式的评估成本非常高:if (costlyTest1() || costlyTest2() || costlyTest3()) { // ...一旦找到返回的JVM,JVM就可以停止评估“ costlyTest”函数true,因为这将满足布尔表达式。因此,如果costlyTest1()返回true,则其他测试将被跳过。类似地:if (costlyTest1() && costlyTest2() && costlyTest3()) { // ...JVM一旦找到返回的函数就可以停止评估函数false,因为它也满足表达式。因此,如果costlyTest1()返回false,则不会调用其他函数。这些规则与布尔表达式的任何嵌套级别有关,可以利用它们来避免不必要的工作,如上面的示例所示。