重复利用对象,常与组合模式共用,组成复杂模块
(Word文档,String,游戏地图坐标)

代码结构
Java设计模式:享元模式_其他
源码

package com.myspringboot.shejimoshi.xiangyuan;

public class StringTest {
    public static void main(String[] args) {
        // 字符串常量池
        String s1 = "a";
        String s2 = "a";
        String s3 = new String("a");
        String s4 = new String("a");

        System.out.println(s1 == s2);   //true
        System.out.println(s1 == s3);   //false
        System.out.println(s3 == s4);   //false
        System.out.println(s3.intern() == s1);   //true
        System.out.println(s3.intern() == s4.intern());   //true


        String ss1 = "abc";
        String ss2 = "abc";
        String ss3 = new String("abc");
        String ss4 = new String("abc");

        System.out.println(ss1 == ss2);   //true
        System.out.println(ss1 == ss3);   //false
        System.out.println(ss3 == ss4);   //false
        System.out.println(ss3.intern() == ss1);   //true
        System.out.println(ss3.intern() == ss4.intern());   //true

    }
}