自动Java装箱拆箱和拆箱从Java 1.5开始引入目的是将原始类型值转自动地转换成对应的对象。
自动Java装箱拆箱就是Java自动将原始类型值转换成对应的对象比如将int的变量转换成Integer对象,這个过程叫做Java装箱拆箱反之将Integer对象转换成int类型值,这个过程叫做拆箱
何时发生自动Java装箱拆箱和拆箱
比如我们有一个方法,接受一个对潒类型的参数如果我们传递一个原始类型值,那么Java会自动讲这个原始类型值转换成与之对应的对象
Java 1.5以前我们需要手动地进行转换才行,而现在所有的转换都是由编译器来完成
在一个循环中进行自动Java装箱拆箱操作会创建多余的对象,影响程序的性能
sum = sum + i,但是+这个操作符鈈适用于Integer对象首先sum进行自动拆箱操作,进行数值相加操作最后发生自动Java装箱拆箱操作转换成Integer对象。其内部变化如下
上面的循环中会创建将近4000个无用的Integer对象,浪费了性能
生成无用对象增加GC压力,在写循环时一定要注意代码避免引入不必要的自动Java装箱拆箱操作。