Java中的几种常见包装类:
Integer, Float, Double, Long, Short, Byte, Boolean, character
Integer, Long, Byte, Short, 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据;
Character 创建了数值在 [0,127] 范围的缓存数;
Float, Double 没有实现缓存机制。
如果超出缓存范围仍然会去创建新的对象,缓存的范围区间的大小只是在性能和资源之间的权衡。
所有整型包装类对象之间值的比较,全部使用 equals 方法比较, 如下代码示例:
{
Integer i1 = 40;
Integer i2 = new Integer(40);
System.out.println(i1==i2);
// 结果是false
//Integer i1=40 这一行代码会发生装箱,也就是说这行代码等价于 Integer i1=Integer.valueOf(40) 。
//因此,i1 直接使用的是缓存中的对象。而Integer i2 = new Integer(40) 会直接创建新的对象
}
拆装箱
装箱:将基本类型用它们对应的引用类型包装起来。
拆箱:将包装类型转换为基本数据类型。
注意:如果频繁拆装箱的话,也会严重影响系统的性能。我们应该尽 量避免不必要的拆装