07 包装类

1. int和Integer的区别?

区别:

  1. int则是java的一种基本数据类型,Integer是int的包装类,是引用数据类型。
  2. int变量直接存储数据值,Integer必须实例化后才能使用,存储的是对象的地址。
  3. int的默认值是0,Integer的默认值是null。
  4. java是面向对象的语言,都是基于对象操作的,比如集合,基本数据类型是放不进去的,包装类型才能放进去。
2. 什么是自动装箱和自动拆箱?

jdk1.5后可以自动实现装箱和拆箱。装箱是指,将基本数据转化成对象。转化为对象就可以利用对象的方法更方便的实现对数据的操作,也更符合面向对象编程的思想。拆箱就是装箱的逆过程,就是将对象转化为基本数据类型。

3. 什么时候会自动装箱,什么时候自动拆箱,
  • 在将基本类型的值赋值给包装类型时会自动装箱。例如:Integer a = 1;
  • 在将包装类型赋值给基本类型时会自动拆箱。例如:Integer a = 1;int b = a;
  • 包装类型和基本数据类型进行比较时,java会将包装类型自动拆箱为基本数据类型,然后进行比较
  • 包装类型在用运算符运算时,会自动拆箱
4. 什么情况下不能将Integer赋值给int类型,什么情况下只能用Integer
  • Integer为null时不可以,因为如果Integer赋值为null,然后再赋值给int类型,会出现空指针异常。
  • 如果需要区分未赋值和0的区别,就只能用Integer。因为int的默认值为0,而Integer的默认值为null。
  • 当需要往ArrayList,HashMap等集合中放东西时,int基本数据类型是放不进去的,因为容器都是装 object的,这时就需要包装类型Integer了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值