1. 程式人生 > >包裝器型別的 == 與 equals

包裝器型別的 == 與 equals

問題的起源:

       討論這個問題,主要源於專案中的一個小bug。廢話不說,先來看段程式碼:

        Long L1 = new Long(123);
        Long L2 = new Long(123);
        System.out.println("L1==L2: "+(L1==L2));

       結果是什麼呢,顯然,兩個類的例項有不同的地址,故其引用的值也是不同的,而 == 號表示的是值和地址都相同,故結果為:

L1==L2: false

那麼一般在包裝器類中怎麼去比較兩個類的值相同呢,對!就是用equals。繼續使用上面的例子。

 System.out.println("L1 equals L2: "+L1.equals(L2));

result:
 L1 equals L2: true

未完待續。。。。