设计模式之享元模式

Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是由于这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。

Java中的String类型

  在JAVA语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在JAVA中字符串常量都是存在常量池中的,JAVA会确保一个字符串常量在常量池中仅仅有一个拷贝。

String a="abc"。当中"abc"就是一个字符串常量。

public class Test {

    public static void main(String[] args) {
        
        String a = "abc";
        String b = "abc";
        System.out.println(a==b);
        
    }
}

  上面的样例中结果为:true ,这就说明a和b两个引用都指向了常量池中的同一个字符串常量"abc"。这种设计避免了在创建N多同样对象时所产生的不必要的大量的资源消耗。

原文地址:https://www.cnblogs.com/slgkaifa/p/6796358.html