java享元模式(flyweight)
有个问题:
Integer i1 = 12; Integer i2 = 12; System.out.println(i1 == i2);//输出true Integer i1 = 130; Integer i2 = 130; System.out.println(i1 == i2);//输出false
为什么第一个输出true,第二个输出false?
答案:数字大小在一个字节内,-128~127之间,重复创建并不会产生新对象。一旦数字超出一个字节,则会创建新的对象。
因为小的数字会经常使用,将经常使用的东西封装起来,下次可以重复使用,这就是享元模式。