亨元模式即轻量级的元素创建模式,通过hashMap存储相应的对象,直接取出使用。不需要重复创建相同的对象。
这个例子在单例模式中的容器模式即有演示.
主要应用于缓存的状况,示例中描述的JVMCacheUtil缓存即是如此。此时可以用多线程安全的 ConcurrentHashMap来进行存储。
亨元模式的典型代表是 Integer 和 String
Integer.valueOf(a) 中,数值 a在 -128~127时,是预选缓存的值,所以此时在该范围内的数值,可以优先使用该方法。
String当中也会通过 inten写入到常量池中
@Test public void testName() throws Exception { final Integer a = Integer.valueOf(56); final Integer b = Integer.valueOf(56); System.out.println(a==b); //true final Integer m = Integer.valueOf(129); final Integer n = Integer.valueOf(129); System.out.println(m==n); //false String ss = "123"; ss.intern(); String sd = "123"; System.out.println(ss==sd); //true // 返回的是新的String final String c = String.valueOf(123); final String d = String.valueOf(123); System.out.println(c==d); //false }