java中int的用途,java-使用int vs Integ

java-使用int vs Integ

我遇到了一个使用Integer变量的类来捕获要在for循环中使用的大小。 这是一种好习惯还是应该使用int基本数据类型?

Integer size = something.getFields().size();

for (Integer j = 0; j < size - 1; ++j)

9个解决方案

80 votes

提供了Integer类,以便可以以纯OO方式对值进行装箱/拆箱。 在适当的地方使用int,除非您特别需要以OO方式使用它; 在这种情况下,Integer是合适的。

Java Int与Integer

但是,这里的情况却截然不同。 一个整数是一个数字; > Integer是可以引用包含数字的对象的指针。

...

一个int不是对象,并且不能传递给任何需要   对象。 一个常见的情况是使用提供的集合类(   List,Map,Set)-尽管可以编写这些版本   类提供与对象版本相似的功能。 的   通常需要包装器类(Integer,Double等)   每当使用内省时(例如在反射API中)。

何时使用一个相对于另一个的更好描述:

在int和Integer之间选择

在进入之前,我将从如何使用这些类型开始   详细说明原因。

出于性能原因,更喜欢Integer

接受对象的方法(包括诸如Integer之类的通用类型)   将隐式要求使用Integer

低值(-128至-128)相对便宜地使用Integer   127)由于实习-请使用!=,而不是新的   整数(整数)

请勿将Integer或!=与整数类型一起使用

当您需要代表时,请考虑使用Integer   没有值(空)

当心将装箱的整数值装箱为带空值的int

Mike McMahon answered 2020-01-02T09:50:15Z

36 votes

如果可以使用int,请这样做。 如果该值可以是null或用作对象,例如 泛型,使用Integer

通常,使用哪一个都没有关系,但int的性能通常会稍好一些。

Peter Lawrey answered 2020-01-02T09:50:40Z

14 votes

这种方法在实践中并不理想,请尽可能使用Integer。 Integer的使用表明该特定变量可以是null(或者它在一个集合中,该死的泛型...)-并非如此。

同样使用Integer会带来装箱和拆箱的额外开销。

Tomasz Nurkiewicz answered 2020-01-02T09:51:05Z

3 votes

这是大型项目中等待发生的潜在灾难。 此处的编码人员忘记了每个Integer实际上是一个新对象,并且要将其用作int,必须始终进行装箱和拆箱。 它不仅效率低下,而且无法按预期运行。 最好在可能的情况下始终使用int,并且仅使用Integer将这些值放入列表,容器或数据库存储中。 请记住,使用>,

Ewald answered 2020-01-02T09:51:26Z

1 votes

始终在可能的地方推广原始类型。

基本类型不能用作GenericArgument或null。

Damian Leszczyński - Vash answered 2020-01-02T09:51:50Z

1 votes

不要仅将其用于循环。 使用原始类型int(更好的性能),它与Class Integer不同。

Integer类将原始类型int的值包装在   宾语。 类型为Integer的对象包含单个字段,其类型   是int。

另外,此类提供了几种转换int的方法。   到一个字符串,一个字符串到一个整数,以及其他常量和   处理int时有用的方法。

因此,如果需要调用Integer函数或需要为其分配一个空值,请使用Integer。

您还需要对列表等泛型使用Integer而不是int

Hitham S. AlQadheeb answered 2020-01-02T09:52:28Z

1 votes

如果需要使用对象,则必须使用Wrapper类,  例如Integer,Double,Float等...

例如:

int n = Integer.parseInt("10");

在这里,我们将字符串转换为整数(原始类型),但是方法parseInt(String str)仅适用于Wrapper类(即Object),因此我们使用了它...在Java中,您会发现它的更多用法。

Kumar Vivek Mitra answered 2020-01-02T09:52:57Z

1 votes

由于装箱和拆箱会导致性能下降,因为这会导致在原始类型和引用类型之间进行转换的开销。

但是,Integer类添加了可能非常有用的其他方法。

dckrooney answered 2020-01-02T09:53:22Z

0 votes

我通常是因为OO而使用Integer。 int的性能绝对比其对象的性能好得多,但是只有在循环数百万次时,它的性能才会显着。

恕我直言,如果在您的应用程序中性能是最重要的,并且您想挤一纳秒,那么使用int无需动脑筋。 但是如果主要关注OO和可读性,那么请使用Integer。

Rakesh Chauhan answered 2020-01-02T09:53:47Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值