Java基础知识——对象包装器和自动装箱

1、对象包装器

对象包装器,听着好高级的样子,其实举个例子就知道是多么常见和普通了。

假设现在要定义一个整型数组列表,一般会定义成:

ArrayList<Integer> list = new ArrayList<>();

为什么尖括号内不是使用 int 呢,因为尖括号中的类型参数不允许的基本类型,所以不能写成 ArrayList<int>。这里就用到了Integer对象包装器类。

有时需要像上面一样将 int 这样的基本类型转换为对象,所有的基本类型都有一个与之对应的类,通常将这些类称为包装器,这些对象包装器类拥有很明显的名字:Integer, Long,Float,Double,Short,Byte,Character,Void 和 Boolean。包装器类不可变,一旦构造了包装器,就不能更改包装在其中的值。

2、自动装箱

所谓自动装箱,就是指编译器会自动将基本类型转换为对应的对象包装器,比如:

ArrayList<Integer> list = new ArrayList<>();
// 添加int类型的元素
list.add(3);
// 等同于:list.add(Integer.valueOf(3));
// 通过Integer.valueOf()将基本类型转化为Integer包装器

类似这种将基本类型的 int 值变换为包装器 Integer 对象就成为自动装箱。

相反地,当将一个 Integer 对象赋给一个 int 值时,将会自动拆箱

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值