gpt4 book ai didi

Java 编译器优化

转载 作者:行者123 更新时间:2023-11-29 06:02:57 25 4
gpt4 key购买 nike

在下面的情况下,我是否需要担心性能并保存昂贵调用的结果,或者编译器是否认识到它可以执行一次昂贵的调用?

String name;
if (object.expensiveCall() != null) {
name = object.expensiveCall().getName();
}

最佳答案

编译器不会(通常)只执行一次调用,因为它可能有副作用,或者其结果可能不稳定——它不可能知道你什么时候想让它忽略第二次调用,什么时候你想要它实际上再次调用电话。您需要保存结果:

final ExpensiveCallResult nullableResult = object.expensiveCall();
String name;
if (nullableResult != null) {
name = nullableResult.getName();
}

关于Java 编译器优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9469537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com