3-2-2 Flyweightパターン
▼IntegerクラスはvalueOfメソッドを利用した場合、-128<=value<=127の範囲でキャッシュするようにしている。
テストコード
public class IntegerTest { /** * コンストラクタ。 */ public IntegerTest() { } public static void main(String[] args) { Integer i1 = new Integer(10); Integer i2 = new Integer(10); compare(i1, i2); i1 = Integer.valueOf(127); i2 = Integer.valueOf(127); compare(i1, i2); i1 = Integer.valueOf(128); i2 = Integer.valueOf(128); compare(i1, i2); i1 = Integer.valueOf(-128); i2 = Integer.valueOf(-128); compare(i1, i2); i1 = Integer.valueOf(-129); i2 = Integer.valueOf(-129); compare(i1, i2); } private static void compare(Integer i1, Integer i2) { if (i1 == i2) { System.out.println("i1 == i2"); } else { System.out.println("i1 != i2"); } } }
実行結果
i1 != i2 i1 == i2 i1 != i2 i1 == i2 i1 != i2
おおっほんとですね。
0 件のコメント:
コメントを投稿