首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么java有int和Integer数据类型,我可以将数据从一个移动到另一个?

为什么java有int和Integer数据类型,我可以将数据从一个移动到另一个?
EN

Stack Overflow用户
提问于 2012-06-16 16:27:04
回答 6查看 935关注 0票数 6

可能重复: 为什么Integer和int可以互换使用?

我试着理解这两者之间的区别。例如,我是否可以声明某事为int,然后将其与我输入的整数中的数字进行比较?另外,为什么Java会有这两个。为什么不把它们结合起来呢?

有人能帮我向我展示一个3-4行代码示例,说明每个代码是如何使用的吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-06-16 16:31:15

int原语不是一个对象。数组允许primiteves:

代码语言:javascript
复制
int[] array = new int[10];

但仿制药不会:

代码语言:javascript
复制
List<int>  //won't compile

这是现在使用包装类的主要原因。此外,您还可以在需要使用Integer的地方使用Object。最后,如果要实现可选性,Integer可以具有null值。

请注意,有一些语言处理这种不一致。在c#中,您有值类型,在斯卡拉中,Int类从AnyVal类扩展,而普通对象则扩展AnyRef (这两个类都是从Any扩展的)。

票数 5
EN

Stack Overflow用户

发布于 2012-06-16 16:32:23

参见Java中类型的拳击。有人说,从Java 9开始,要使它们完全相同。

票数 2
EN

Stack Overflow用户

发布于 2012-06-16 16:33:44

  • 基元int类型和整数类是不同的类型。不能直接将原始intInteger对象进行比较。您需要从intValue对象获取Integer
  • 是的,这是必需的功能。Java和其他一些语言为原始类型提供了这类对象包装器,用于处理需要对象的情况。例如,集合类将期望对象,不能与它们一起使用原始int。因此,您需要一个Integer包装器。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11065173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档