首先常规操作,我们先看一下什么是享元模式,维基百科解释:享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 享元模式的使用场景还是比较多的,最常见的一个场景就是 Java JDK 里面的 String 字符串类,因为 JVM 中有常量池,常量池的实现就是一种享元模式,避免多个相同对象的存在。另外线程池以及很多用到缓冲池的地方都采用了享元模式,比如 Integer 类中默认缓存了-128 -127 之间的整数,等等场景。