黑马程序员技术交流社区

标题: 求大神解惑 [打印本页]

作者: 冯华亮    时间: 2012-8-5 13:14
标题: 求大神解惑
经常在程序看到nt和Integer来定义一个整型数据或数组,请问他们到底有什么区别!!望不吝赐教

作者: 黑马-张化    时间: 2012-8-5 13:24
Integer i=0;
i是一个对象

int i=3;
i是一个基础变量

Integer i=0;
这种写法如果没记错,在JAVA1.5之前是会报错的,自动的加解包是1.5的新特性
必须写成
Integer i= new Integer(0);
i.intValue()才能提取i的值

使用场合,例如说
往ArrayList里面add,必须add的是Object
而int不是对象,就只能把Integer添加进去

希望对楼主有帮助
作者: 王德升    时间: 2012-8-5 13:36
首先你要明白:1,integer是int的包装类,int是基本类型,没有空值。

             2,integer可以有空值即null。 因为它是引用类型。

其次,java一般处理对象都会封装对象,但是基本数据类型不是对象,

所以java就对int,double,char等进行了封装,java5.0之后提供了自动拆箱装箱功能.

举个例子:Integer i = 3; 在java没有封装对象之前是不可以这么写的.

就需要自己封装对象即 Integer i = new Integer(3);

总之你记住一个是基本数据类型 一个是引用数据类型 老毕视频里都有的 你看到就会知道了,


作者: 焦晨光    时间: 2012-8-5 13:38
int不是对象,是java原始的数据类型,用于直接存数值,它默认值为0.
Integer是个对象,它有自己的方法,是一个引用指向这个方法,默认值为NULL

int是基本类型,Integer是包装类,也就是类。
int一般只用在数值计算中,而Integer是用在Java的其它要使用对象的地方

int i=1;//i是基本类型数据变量
Integer i=new Integer(1)://i是一个对象引用,integer是一个类
作者: 尤洋    时间: 2012-8-5 13:52
int 指向的是基本数据类型。而integer指向的是一个对象,是相应于int的类类型,称为对象包装
需要用到对象时 用Integer,比如往ArrayList里面add,必须add的是对象,就得用Integer。
需要的是基本数据时 用int   
Integer有 自动 加包 和自动解包 的特性。

另外Integer创建的对象在-128-127内实现了常量池技术,也就是说在
这个数据范围内Integer出来的对象只要值相等 就对应的是一个对象(当然 这里不包含用new新建对象)
Integer i=0;
Integer a=0;  则,i和a指向同一个对象,

但是
Integer i=160;
Integer a=160;时则i和a指向两个不同的对象。






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