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之间,重复创建并不会产生新对象。一旦数字超出一个字节,则会创建新的对象。
因为小的数字会经常使用,将经常使用的东西封装起来,下次可以重复使用,这就是享元模式。

posted @ 2016-11-23 15:31  阿飞博客  阅读(117)  评论(0)    收藏  举报