c int 和java integer_java int和Integer的区别

今天偶然和同学讨论到int和Integer的区别是,发现自己对这个问题了解的并不是很清楚,而且有些概念还是错的,所以在这对int和Integer的区别做一个总结。

int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别:

int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象

1.Java 中的数据类型分为基本数据类型和复杂数据类型

int 是基本数据类型 而integer 是复杂数据类型(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.

2.初始化时:

int i =1;

Integer i= new Integer(1);(integer 是一个类);但由于有了自动装箱和拆箱使得对Integer类也可使用:Integer i= 1;

int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充),Integer 是一个类,是int的扩展,定义了很多的转换方法

java一共有八种基本数据类型:字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double;每一个基本数据类型都有一个包装类,

对应的包装类为Character,Booblean,Byte,Short,Integer,Long,Float,Double

比如当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装 object的,这是就需要这些基本类型的包装类了。

下面用一段代码来具体展示以下:

1 /**

2 * int 和Integer类型区别比较3 * 2016/5/44 *5 */

6 packagecn.Java_7;7 public classCampare {8 public static voidmain(String[] args) {9 Integer a = new Integer(127), b = new Integer(128);10 int c = 127, d = 128, dd = 128;11 Integer e = 127, ee = 127, f = 128, ff = 128;12

13 System.out.println(a == b); //false 因为a,b都是new出来的对象,地址不同所以为false

14 System.out.println(a == c); //true a会自动拆箱为int类型

15 System.out.println(a == e); //false 指向的地址不同a是new出来的

16 System.out.println(e == c); //true e会自动拆箱为int类型

17 System.out.println(e == ee);//true 处于-128到127范围之间,指向了同一片地址区域

18

19 System.out.println(b == f); //false 指向的地址不同b是new出来的

20 System.out.println(f == d); //true f自动拆箱为int类型

21

22 System.out.println(f == ff); /*false 指向的不是同一片地址区域 在Integer类型中,-128到127存放的是同一片区域地址,之外的数23 是另外开辟空间来进行 存储的*/

24 System.out.println(d == dd); //true 不解释

25 }26 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值