gpt4 book ai didi

java - 我应该永远不再使用原始类型吗?

转载 作者:太空狗 更新时间:2023-10-29 22:44:12 25 4
gpt4 key购买 nike

在 Java 中混合使用原始数据类型及其各自的包装类会导致很多错误。下面的例子说明了这个问题:

int i = 4;
...
if (i == 10)
doStuff();

稍后您认为您希望变量 i 已定义或未定义,因此您将上述实例化更改为:

Integer i = null;

现在相等性检查失败了。

总是使用原始包装类是 Java 的好习惯吗?显然,它会尽早消除一些错误,但这样做有什么缺点呢?它会影响性能或应用程序的内存占用吗?有什么偷偷摸摸的陷阱吗?

最佳答案

使用装箱类型确实同时存在性能和内存问题。

在进行比较时(例如 (i == 10) ),java 必须在进行比较之前对类型进行拆箱。即使使用 i.equals(TEN) 也会使用方法调用,这比 == 语法更昂贵且 (IMO) 更丑陋。

关于内存,对象必须存储在堆上(这也会影响性能)以及存储值本身。

偷偷摸摸的陷阱? i.equals(j) 当 i 为 null 时。

我总是使用原语,除非它可能null,但在那些情况下比较之前总是检查null

关于java - 我应该永远不再使用原始类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/124148/

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