Java手动装箱和自动装箱解析

1. 装箱拆箱的基本介绍

Java中本身具有八种基本数据类型,他们分别是:

基本数据类型包装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble

上面的表格我们可以注意到,八种基本数据类型对应都有自己的包装类。那么,什么是包装类呢?

由于基本数据类型本身并不是一个类,执行一些常用操作的时候往往需要编写方法完成操作。而包装类就提供了如 toString()、hashCode()、equals() 等的方法方便我们日常操作,在使用的时候我们只要将基本数据类型转换为对应的包装类(引用类型),我们就可以非常方便的调用这些方法。

另外,转换成包装类为泛型提供了支持。

public static void main(String[] args){
    List<Integer> list = new ArrayList<>();//泛型必须是一个对象
    List<int> list1 = new ArrayList<>();//报错,不支持基本类型
}

2. 手动装箱/拆箱

在 jdk5 以前,将基本数据类型转换为包装类需要我们手动。这里以基本数据类型 int 转换包装类 Integer 为例。

int n1 = 100;

//手动装箱 int -> Integer
Integer integer = new Integer(n1);
//或者 Integer integer = Integer.valueOf(n1);

//手动拆箱 Integer -> int
int i = integer.intValue();

3. 自动装箱/拆箱

在 jdk5 及以后,实现了自动装箱和拆箱工作。

int n2 = 200;
//自动装箱
Integer integer2 = n2;//底层使用的是 Integer.valueOf(n2)

//自动拆箱
int n3 = integer2;//底层使用的是 intValue()方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值