gpt4 book ai didi

java - 当某项为空时,哪种设置方式更快?

转载 作者:行者123 更新时间:2023-12-02 08:41:04 30 4
gpt4 key购买 nike

Java 中哪个更快,为什么?

try {
object.doSomething()
} catch (NullPointerException e) {
if (object == null) {
object = new .....;
object.doSomething();
} else throw e;
}

if (object == null) {
object = new .....;
}
object.doSomething();

为什么?

该代码会经常被调用,并且object在第一次调用时只是null,所以不要承担抛出NPE<的成本记入帐户(仅发生一次)。

附注我知道第二个更好,因为简单、可读性等,并且我肯定会在真正的软件中选择它。我知道过早优化的弊端,无需提及。我只是对这些小细节感到好奇。

最佳答案

您绝对应该使用后一种方式,不是因为它更快,而是因为它更惯用。异常不应该用于 Java 程序中的控制流。

这纯粹是轶事,但我做过的所有微基准测试都表明,使用控制流异常的性能不如条件语句,尽管可能不可能支持这种泛化,而且 JVM 非常擅长无论如何,围绕这样的事情进行优化,所以 YMMV。

关于java - 当某项为空时,哪种设置方式更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781363/

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