本帖最后由 一棵树123 于 2017-12-4 16:19 编辑
1、integer是引用数据类型,声明为integer的时候需要实例化,也就是需要new一下,默认值是Null,而int是一种基本数据类型,所以他可以直接存储数据,默认值是0。C:\用户\Adiministrator\Dsektop\123.png
2、integer是int的包装类。为了能够将基本数据类型当成对象来操作,java把每个基本数据类型都引入了对应的包装类,而int的包装类就是integer。并引入了自动拆装箱机制,从而在使用时能够实现二者之间自由转换。在使用过程中,我们直接讲一个int数据直接通过赋值方式赋予一个integer对象的时候,就实现了自动装箱,反之,当我们将一个integer对象赋值给int对象时,也就实现了自动拆箱。C:\用户\Adiministrator\Dsektop\133.png
值得注意的是,当我们利用自动装箱给两个integer对象a1,a2赋予相同的值时,两个integer是否相等呢?实际上,当被赋予的值是在-128~127之间时,输出a1==a2,控制台打印的结果是true,而当被赋予的值是在-128~127之外,输出a1==a2,控制台打印的结果却会变成false。这一切都归结于java对自动拆装箱设计时,为了加大对简单数据的重复利用,Java在自动装箱时对在-128~127之间的值,被装箱后,会在内存在被重用,因此只会存在一个对象,而对于-128~127之外的值,被装箱后,并不会被重用,相对于每次装箱都会在内存中新建一个integer对象。 |
|