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

在Java中更快地尝试catch或if-else(WRT性能)

曹乐意
2023-03-14
问题内容

哪一个更快:

要么这个

try {
  n.foo();
} 
catch(NullPointerException ex) {
}

要么

if (n != null) n.foo();

问题答案:

这不是哪个更快的问题,而是正确性之一。

例外情况恰好是 例外

如果有可能的nnull在正常业务逻辑的一部分,然后使用if..else,否则throw异常。



 类似资料:
  • 我的项目中有一个复杂的模型结构<有时我必须从中获得深层次的价值。如下所示: 问题是,这些方法中的每一个都可能返回null,如果返回,我将得到null点异常。 我想知道的是如果我喜欢的话我应该写长一点吗 或者可以使用try... catch,如下所示: 我知道NPE是一件需要避免的事情,但在我的情况下,避免它不是一件开销吗?

  • 数字根是数字中所有数字的递归和。给定n,取n的位数之和。如果该值有两位数,则继续以这种方式递减,直到生成一个位数。这只适用于自然数。 正如您在上面看到的,我已经尝试通过测试“如果输出的值不等于1,则返回”的if fe语句返回个位数。但是,这个返回不起作用,而是从我放在下面以清除返回错误的返回中返回0。对这个问题有什么帮助吗?谢谢

  • 你好,我有两个代码示例 if/else if/else语句 可选语句 所以我的问题是这两者在性能方面是如何比较的(我在实际代码上有大约15-20个if-else语句)? 是否值得重构代码可读性与性能之间的关系,或者是对选项的误用? 另外,如果if/else-if语句增长到100+时,性能损失是什么? 提前致谢

  • 问题内容: 我想知道使用if语句或switch之间是否有效率差异。例如: 我认为,即使第一个if语句为true,程序也需要检查所有if语句。 但是在开关中,有一个break命令。我的对吗?如果没有,您能否解释一下两者之间的效率差异? 问题答案: 性能优于切换时的性能。一旦评估了开关,它就会知道需要执行哪种情况,但是在最坏的情况下必须经历所有情况。 列表条件越长,切换性能越好,但是对于较短的列表(仅

  • 问题内容: 谈论Java性能..哪个更好?if..else或多个if 要么 对您的想法感兴趣 谢谢! 问题答案: 在性能方面没有区别。选择最易读的选项,具体取决于代码的功能。 通常,不必担心这些微优化。只有在确定存在需要解决的性能问题后,才能进行优化。 “我们应该忘记效率低下的问题,大约有97%的时间是这样:过早的优化是万恶之源。” -唐纳德​​·努斯

  • 问题内容: 以下三个功能中哪个更有效? 请以可接受的具体逻辑答复。 问题答案: 前者是更有效时,是。两者何时不相同。与的比较只是两个32位整数的比较,这是非常快速的运算。抛出异常的代价很高,因为应该创建新对象并且应该填充堆栈跟踪。 三进制运算符与语句完全一样有效,因为两者都被转换为相同的字节码。