gpt4 book ai didi

java - 嵌套获取性能

转载 作者:搜寻专家 更新时间:2023-11-01 04:04:36 25 4
gpt4 key购买 nike

在 Java 中,如果我不断使用嵌套 get 来检索值,是否会影响性能?例如:

String firstname = getOffice().getDepartment().getEmployee().getFirstName();
String lastname = getOffice().getDepartment().getEmployee().getLastName();
String address = getOffice().getDepartment().getEmployee().getAddress();

对比:

Employee e = getOffice().getDepartment().getEmployee();
String firstname = e.getFirstName();
String lastname = e.getLastName();
String address = e.getAddress();

第二个版本会因为“跳跃”更少而更快吗?

最佳答案

这完全取决于 getXYZ 调用的do。如果它们是底层字段的简单访问器,那么不,不是在 HotSpot(Oracle 的 JVM)上,因为如果有任何需要,它们会被优化掉。另一方面,如果他们做任何复杂的工作(遍历 btree 等),那么他们当然必须重复做这些工作(除非 HotSpot 可以向自己证明调用是幂等的,如果代码有任何复杂性变得不太可能)。 (他们重复执行工作是否重要是另一个问题;直到/除非您看到实际的性能问题,否则不要担心。)

但第二个可读性和可维护性更高。这是使用它的更强有力的理由。

关于java - 嵌套获取性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14152065/

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