Java-包装类的自动拆箱与装箱

前言

包装类与基本数据类型是Java中很常见的东西,也是Java为了符合面向对象所作出的一个非常有意思的东西。我们在平时的代码中可能会经常用到包装类与基本数据类型的转换,这种转换被我们称为装箱(基本类型->包装类型),拆箱(包装类型->基本类型)。

装箱

装箱的时候我们实际上是调用的是 valueOf()方法,但是在这个方法中其实并不是简单的创建对象,而是有一定的缓存策略。这里我们拿Integer来进行举例

可以看到,为了节省内存,在返回的时候会根据返回值的大小来进行判断是否返回缓存对象。所以会出现下面那种情况。

拆箱

拆箱的话就比较简单了,就是调用xxValue方法,如intValue()

比较,装箱还是拆箱?

这个是毫无疑问的,在包装类型与基础类型进行==运算时,是对包装类型进行的拆箱操作。这个也是很合理的。

打赏