gpt4 book ai didi

JAVA - 指针追逐 - 最佳实践

转载 作者:行者123 更新时间:2023-12-02 13:21:55 27 4
gpt4 key购买 nike

我看过一个视频,有人说我们应该尽可能使用基元而不是对象。原因是访问对象意味着使用指针,因此存在开销。

因此:

  • 如果有一个与 SQL 表(使用 JPA)映射的类,由于数据库中可能存在空值(例如:Integer 而不是 int),其中多个字段为对象
    • 我是否应该创建一个母类,其中的对象被基元替换,如果可能的话,在我的应用中使用相当于 null 的固定值?(例如:-1 而不是 null)
    • 处理大量数据时使用的母类
    • 以及映射到数据库的子类,仅在持久化数据时使用
    • 在子类中,我可以添加一些映射到列的方法,如下所示:
@Column("MY_COLUMN")
public Integer getId() {
// super.getIdAsInt() returns a value of type int, the primitive.
// -1 means value not set in my app.
Integer result = (super.getIdAsInt() == -1) ? null : super.getIdAsInt();
return result;
}

我认为这种模式也适用于子类保存数据(保存到数据库或 XML 文件中,...)并且具有 null 值的字段有意义的任何情况。

  • 您认为这些可能是提高应用程序性能的最佳实践吗?
  • 如果没有,您能给我一些潜在缺点的示例吗?

谢谢

最佳答案

使用包装类的好处远远超过任何开销影响。对象可以在集合中使用,并且它们可以为 null。 NullPointerException 比未初始化原语引起的错误更容易调试。

此外,您提出的解决方案会给您的应用程序增加不必要的复杂性,而您和其他开发人员不希望在以后处理这些复杂性。

这个问题is also discussed here

关于JAVA - 指针追逐 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43530578/

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