为什么要将基本数据类型封装成类?
就比如为什么int类型要用Integer类封装?
确切地说,本来Java中只应该有 Integer,因为Java的一切都是面向对象的。
但是这样以来,性能上太差了,因为整数大量存在,大量需要计算,所以又引入了 int
那么需要一个Interger和int的转换,这就是所谓的装箱和拆箱。
有很多方面吧, java就是面向对象的语言, 基本数据类型有对应的包装类 也是符合java的特点的
像java中的泛型 就只能是存储对象,那基本数据类型就需要对应的包装类;
包装类 里面也有一些比较实用的方法,比如 转化,比较等等,另外它也可以表示 null
封装基本数据类型成类的目的是为了让基本类型也具有面向对象的特性,并增强其功能,以便更好地满足开发需求。
不知道你这个问题是否已经解决, 如果还没有解决的话:这个在转换的过程中会调用Integer的静态方法valueOf()方法。
源码如下:
public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
这里有个IntegerCache其实就是在VM启动时,为了加快int类型到Integer的转化速度,在VM启动时就new出一些int类型与Integer的对应关系,方便直接返回Integer,而不用new。new其实是很耗时的。
注意:
这里的valueOf是static的。因为,这时你想要的是Integer对象,所以只能是static的。