java拆箱和装箱
1.自动装箱和自动拆箱
- 指的是原始类型和封装类型相互转换。
2. 为什么要拥有装箱和拆箱机制?
- 使java代码更加彻底地面向对象
- 从jdk1.5以后开始支持,使代码更加简洁,优雅,易懂。
4. 装箱和拆箱解决了什么问题?
- 因为java的集合只能存入对象,不支持原始类型,在jdk1.5时需要手工去转换原始类型和封装类型,jdk1.5以后引入装箱和拆箱就可以自动转换了,使代码的便于更加简洁、方便、易懂。
5.装箱和拆箱的实现过程:
/** * 装箱,拆箱 * * @author szy * */ public class EncapsulationType { public static void main(String[] args) { Integer i = 10; // 装箱 int n = i; // 拆箱 } }
使用javap -c 的命令反编译后我们发现:装箱时用了 Integer.valueOf(), 拆箱用了Integer.intValue()
6.值传递
- 原始类型值传递,是将值本身传递过去且原始类型保存在栈中。
- 引用类型传递的时候是将引用传递过去,程序根据这个引用去堆中获取相应的值。引用类型的值保存在堆中,引用变量保存在栈中。