摘要:Java预先创建了256个常用的整数包装类型对象,在实际应用当中,对已创建的对象进行复用,节约内存效果明显。
为何要写这个?;就是为了节约内存!!!
-
Integer是什么:
Int的包装类(学Java的都知道) -
自动装箱、拆箱:
JDK5之后,赋值时提供的自动装箱和自动拆箱
例如:
[scode type=“share”]Integer integer1 = 10; // 【自动装箱】将基本类型直接赋值给包装类型
int int2 = integer1; // 【自动拆箱】将包装类型引用赋值给基本类型(赋的是值)[/scode]
3.整数类型缓冲区分析:
案例1:
Integer integer1 = new Integer(100);
Integer integer2 = new Integer(100);
分析:
为什么是false而不是true
因为integer1,integer2是两个对象
比较的是地址而不是value值所以就是false
案例2:
Integer integer3 = 100;//自动装箱Integer.valueOf()
Integer integer4 = 100;
分析:
静态缓冲区
缓冲区:大量的重复应用下,节约内存的效果明显
integer3是地址值,调用静态方法Integer.valueOf()
integer4和integer3是相同的地址值,在加载类的时候已经做了处理
案例3:
Integer integer5 = Integer.valueOf(200);//自动装箱
Integer integer6 = Integer.valueOf(200);
分析:
为什么是false而不是true
1.IntegerCache的缓冲区的区间
2.integer5/integer6并不在cache[]中。cache[]不包括200,就重新new了然后就是false
1.IntegerCache的缓冲区的区间
2.integer5/integer6并不在cache[]中
文章外链个人blog:https://www.dlaiblog.com/archives/34/