首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中,Integer和int有什么区别?

在Java中,Integer和int有什么区别?
EN

Stack Overflow用户
提问于 2011-12-29 04:05:12
回答 6查看 286.8K关注 0票数 281

例如,您为什么可以这样做:

代码语言:javascript
复制
int n = 9;

但不是:

代码语言:javascript
复制
Integer n = 9;

你可以这样做:

代码语言:javascript
复制
Integer.parseInt("1");

但不是:

代码语言:javascript
复制
int.parseInt("1");
EN

回答 6

Stack Overflow用户

发布于 2011-12-29 04:09:27

Integer指的是Java语言中的包装器类型,而int是一种基本类型。Java中除了原始数据类型之外的所有内容都是像对象一样实现的,这意味着Java是一种高度合格的纯面向对象编程语言。如果需要,在Java中也可以使用所有原语类型作为包装器类型。使用原语类型可以获得一些性能优势,因此应该只在必要时使用包装器类型。

在您的示例中,如下所示。

代码语言:javascript
复制
Integer n = 9;

常量9auto-boxed (auto-boxingunboxingjava 5开始自动发生)转换为Integer,因此您可以像这样使用语句,也可以使用Integer n = new Integer(9)。这实际上是通过语句Integer.valueOf(9).intValue();实现的

票数 5
EN

Stack Overflow用户

发布于 2011-12-29 04:16:52

Integer是包装器类/对象,int是原始类型。当您想要在集合中存储int值时,这种差异起着巨大的作用,因为它们只接受对象作为值(直到jdk1.4)。从JDK5开始,因为自动装箱,这是一个完全不同的故事。

票数 4
EN

Stack Overflow用户

发布于 2011-12-29 04:11:01

int是一个基本类型,而不是一个对象。这意味着没有与之相关联的方法。Integer是具有方法的对象(如parseInt)。

在较新的java中,有自动装箱(和拆箱)的功能。这意味着编译器将在需要的地方插入Integer.valueOf(int)或integer.intValue()。这意味着它实际上可以写成

代码语言:javascript
复制
Integer n = 9;

它被解释为

代码语言:javascript
复制
Integer n = Integer.valueOf(9);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8660691

复制
相关文章

相似问题

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