int与integer的区别

Java int integer的区别

intinteger的区别是基本数据类型其包装类的区别:

int为基本数据类型,直接存数值,初始化为0,而integer是复杂数据类型,为对象,用一个引用指向这个对象,初始化为nullintegerint的封装类。

初始化:int i= 1;

        Integer i= new Integer(1)

由于在java中有自动装箱和拆箱机制,简单的理解为将基本数据类型与对象数据类型的转化,由基本数据类型封装为对象数据类型为装箱,反之则为拆箱。

例如: Integer num = 10 被自动装箱为Integer num= new Integer(10)

       int num1 = num 则为自动拆箱。

由于对象不能直接进行运算,则在进行运算时,会有自动拆箱的过程。如num--;

 

但是java定义了自动装箱时针对-128127之间的值,在被装箱为Integer对象后,会存在内存中被重用,始终只存在一个对象,对于超出此范围的值,被装箱后的Integer对象后不会被重用,即相当于每次装箱时都新建一个Integer对象。

例如:

         Integer num1 = 297;   Integer num2 = 297;          

         System.out.println("num1==num2:"+(num1==num2));                   

         Integer num3 = 97;   Integer num4 = 97;  

         System.out.println("num3==num4:"+(num3==num4));

打印的结果是:num1==num2: false   num3==num4: true

 

java中需要往ArrayListHashMap中放东西时,像int,double这种内建类型(基本数据类型?)是放不进去的,因为容器都是装 object的,这是就需要这些内建类型的外覆类了java的每种内建类型都有相应的外覆类。

例如: ArrayList array = new ArrayList();

 int n =40;

 Integer n1 = new Integer(n);

 array.add(n);//错误

  array.add(n1); // 正确

 List<Integer> list = newArrayList<Integer>();//正确

List<int> list = newArrayList<int>();//错误

总结:定义一个int类型的基本数据类型,只是用来进行加减乘除的简单运算或者是作为参数传递。

定义一个integer来声明一个对象,是以对象来进行处理的,需要使用对象间的转化方式和方法。

参考资料:点击打开链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值