黑马程序员技术交流社区

标题: 一个小疑问? [打印本页]

作者: 李月    时间: 2012-5-7 11:42
标题: 一个小疑问?
int 与 Integer的不同之处与相同之处?

以前我一直以为它两是一样的。毕老师说是不一样的。
作者: 郭振    时间: 2012-5-7 11:46
int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况
作者: 蒋映辉    时间: 2012-5-7 11:48
int是基本数据类型   Integer是java.lang.Object-java.lang.Number-java.lang.Integer 下的一个类
相同点  都可以表示一个整数  不同点  Integer还提供了很多操作这个数的方法
作者: 谭景宾    时间: 2012-5-7 11:51
int是JAVA的一个基本类型,而Integer是JAVA的一个类,对应 int。因为在某些地方不可以用int而要用Integer。而且基本类型运算的速度也要快。

  int 是变量的基本类型

  Integer 是int的外覆类型

  “基本类型有所谓的‘外覆类(wrapper classes)’如果你想在heap内产生用以代表该基本类型的非原始对象(nonprimitive object),那么外覆类型就可派上用场。”

  引自《Thinking in Java》

  注意:

  1、int和Integer都可以表示某一个数值;

  2. int和Integer不能够互用,因为他们两种不同的数据类型;


作者: 廖理    时间: 2012-5-7 12:00
本帖最后由 廖理 于 2012-5-7 12:02 编辑

int类型是基本数据类型,存储在Stack中((面向过程留下的痕迹,不过是对java的有益补充))
Integer是int类型的包装类,Integer是类类型的,需要创建对像之后才能使用,他存储在heap中 
     Integer 是一个类,是int的扩展,定义了很多的转换方法
  类似的还有:float Float;double Double;char Character等
  举个例子:当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装 object的,这是就需要通过这些内建类型的包装类来实现了。
  
  (Jdk1.5以后Integer和int之间可以自动转型,例如:Integer i = 3;int x = i;是可以的)
  




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