2010年9月7日火曜日

「Javaフレームワーク開発入門」を読んで1

「Javaフレームワーク開発入門」という本を電車などでちょろちょろ読んでいるので気になったところをメモっていきます。


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 件のコメント:

コメントを投稿