1。享元模式:也叫蝇量模式,运行共享技术有效的支持大量细粒度的对象。
2。享元模式常用于系统底层开发,解决系统的性能问题。比如数据库连接池,里面都是创建好的连接对象。
3。享元模式能够解决重复对象的内存浪费问题,当系统中有大量相似对象,需要缓冲池时,不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率。
4。享元模式经典的应用场景就是池技术。String常量池,数据库连接池,缓冲池等等都是享元模式的应用,享元模式是池技术的重要实现方式。
JDK中的Integer类就使用到了享元模式
public class FlyWeightInteger {
public static void main(String[] args){
// -128到127之间的数, valueOf()会使用享元模式返回
Integer x = Integer.valueOf(127);
Integer y = new Integer(127);
Integer z = Integer.valueOf(127);
Integer w = new Integer(127);
System.out.println(x == z);
System.out.println(y == z);
System.out.println(y == w);
}
}