当前位置:  开发笔记 > 编程语言 > 正文

使用哪一个,int或Integer

如何解决《使用哪一个,int或Integer》经验,为你挑选了4个好方法。

我需要创建一个数据传输对象,我将用它来存储从数据库中检索的记录.在这个数据传输对象中,我需要声明一个数字字段.对于哪个更好 - intInteger

如果我将字段定义为Integer,如果我要从DB中检索超过2000条记录,是否会因"整数"类型而对性能产生影响!

提前致谢.



1> Adeel Ansari..:

Integer是一个更好的选择,因为它可以处理null; 因为int,如果被使用,null将成为0,默默地resultSet.getInt(..).否则,它可能会抛出一些异常,例如"无法设置null为原始属性".

这里的表现很少受到关注.

如果您选择int,您将最终添加额外的处理代码; 这对你没什么好处.你的代码不会干净简洁,很多样板代码,你甚至都不会获得性能.

让我说清楚,对于数据库,null与零不一样.有时你最终进入0,null意图在哪里.想象一下用户提交表单但不提供任何价值的情况int.0默认情况下,您最终会获得.当该字段not null在数据库中时,它确实有意义,或者确实如此.


@Adeel:null如何默默地变为0?

2> tddmonkey..:

您应该根据您需要做的事情而不是性能成本做出决定.一旦确定了速度问题并使用剖析器 - 所有邪恶的根源和所有这些,就应该根据性能做出决定.

查看两者的一些功能并将其用于您的决定,例如

Integer可以null,int不可以.原来是intDB一个Nullable领域?

你需要访问Integer类方法吗?

你在做算术吗?

就个人而言,我总是选择包装器上的原语.但这只是一种偏好,而不是基于任何技术优点.



3> Andrzej Doyl..:

在我看来,在声明int或Integer之间的选择只是归结为null是否为它的有效值.自动装箱(和自动装箱)将处理任何转换问题,其中数字必须是一种或另一种类型.在几乎所有情况下,表现(如已经指出的)也不太可能是显而易见的.

此外,int应该是自然的选择,并且无论如何都可能是性能最高的.如果你需要能够存储空值,那么你必须使用Integer(并且还要确保没有空引用为一个只需要整数的方法自动取消装箱,因为这会导致NullPointerException).



4> Mehrdad Afsh..:

Integer理论上比较慢int,但性能影响应该是最小的,除非你正在处理数字.JIT优化也会降低性能损失.

使用最适合您的情况的原始或参考类型.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有