A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 抽烟男孩 中级黑马   /  2013-3-20 21:42  /  1939 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 抽烟男孩 于 2013-3-22 13:37 编辑

java中定义int temp=3 ; 与  Integer  temp=3; 以及  Integer temp=new Integer(3);的区别

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1 新手,奖励一分

查看全部评分

7 个回复

倒序浏览
int temp=3; temp是一个基础变量

Integer temp=3; temp是一个对象

Integer temp=3;
在JAVA1.5之前是会报错的,自动的加解包是1.5的新特性
必须写成
Integer temp= new Integer(3);
temp.intValue()才能提取temp的值

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 曹春贵 于 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出的对象就意味着它是引用型数据,前面第一种直接赋值的属于值类型数据。

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
这个问题好熟悉啊,我也问过,你可以看下我的帖子http://bbs.itheima.com/thread-41453-1-1.html
下面是我的理解图

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
小路飞 来自手机 中级黑马 2013-3-21 00:48:16
报纸
本帖最后由 侯国奇 于 2013-3-21 00:49 编辑

Integer  temp=3和 Integer
temp=new Integer(3)是一回事,JDK1.5之后加入了基本数据类型的自动封箱和自动拆箱。都是将基本数据类型转换为引用数据类型,以便进行更多的操作。
而 int temp=3则是给int型变量赋值。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
int temp=3;
给变量赋值,temp是基本数据类型,3是初始化值。
Integer  temp=3;进行了自动装箱相当于 Integer temp=new Integer(3);
temp是引用数据类型,3是对象。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
int temp=3 是一个变量  
Integer  temp=3是在类中定义一个新对象
Integer temp=new Integer(3)是在类中定义一个新对象,并且创建一个新的引用

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 送你一分

查看全部评分

回复 使用道具 举报
沈文杰 发表于 2013-3-20 22:35
这个问题好熟悉啊,我也问过,你可以看下我的帖子http://bbs.itheima.com/thread-41453-1-1.html
下面是我 ...

thank :)you
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马