享元模式的英文为Flyweight pattern .在说享元模式之前先看一段代码:
Integer i1 = 1; Integer i2 = 1; System.out.println(i1 == i2); // true
Integer i1 = 160; Integer i2 = 160; System.out.println(i1 == i2); // false
对于上面的结果出现的原因是:jdk把int类型的-128---127之间的数字缓存起来。如果有人定义了int类型并且值为-128----127之间,那么他们就共享内存中的一块单元。由于它们共享一块内存,所以指向的内存地址也就应该相同的。代码在内存中的图是i1和i2同时指向内存中的同一块区域。
======================================================
Integer i =1 //等价于 Integer i = new Integer(1)
因为jdk会自动拆箱装箱。
原文:http://blog.csdn.net/zl544434558/article/details/20804901