黑马程序员技术交流社区

标题: Integer与int [打印本页]

作者: 抽烟男孩    时间: 2013-3-20 21:42
标题: Integer与int
本帖最后由 抽烟男孩 于 2013-3-22 13:37 编辑

java中定义int temp=3 ; 与  Integer  temp=3; 以及  Integer temp=new Integer(3);的区别
作者: lxww    时间: 2013-3-20 21:47
int temp=3; temp是一个基础变量

Integer temp=3; temp是一个对象

Integer temp=3;
在JAVA1.5之前是会报错的,自动的加解包是1.5的新特性
必须写成
Integer temp= new Integer(3);
temp.intValue()才能提取temp的值
作者: 曹春贵    时间: 2013-3-20 21:53
本帖最后由 曹春贵 于 2013-3-20 21:56 编辑

int是一个基本数据类型,Integer是一个包装类,int temp=3,此时temp这个基本类型的值是3,Integer temp=3,此时它这个包装类的对象是3,若将字符串转换成整型就需要Integer这个包装类才能实现,int这个基本数据类型是不行的,例如String a="2";int b=Integer.passInt(a);Integer temp=new Integer(3)此时就是通过Integer这个类的构造函数实现的赋值,并且通过new出的对象就意味着它是引用型数据,前面第一种直接赋值的属于值类型数据。
作者: 沈文杰    时间: 2013-3-20 22:35
这个问题好熟悉啊,我也问过,你可以看下我的帖子http://bbs.itheima.com/thread-41453-1-1.html
下面是我的理解图

作者: 小路飞    时间: 2013-3-21 00:48
本帖最后由 侯国奇 于 2013-3-21 00:49 编辑

Integer  temp=3和 Integer
temp=new Integer(3)是一回事,JDK1.5之后加入了基本数据类型的自动封箱和自动拆箱。都是将基本数据类型转换为引用数据类型,以便进行更多的操作。
而 int temp=3则是给int型变量赋值。
作者: 王龙涛    时间: 2013-3-21 09:12
int temp=3;
给变量赋值,temp是基本数据类型,3是初始化值。
Integer  temp=3;进行了自动装箱相当于 Integer temp=new Integer(3);
temp是引用数据类型,3是对象。

作者: qintoko    时间: 2013-3-21 11:50
int temp=3 是一个变量  
Integer  temp=3是在类中定义一个新对象
Integer temp=new Integer(3)是在类中定义一个新对象,并且创建一个新的引用
作者: 抽烟男孩    时间: 2013-3-21 12:41
沈文杰 发表于 2013-3-20 22:35
这个问题好熟悉啊,我也问过,你可以看下我的帖子http://bbs.itheima.com/thread-41453-1-1.html
下面是我 ...

thank :)you




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2