can任何機構都可以解釋輸出中發生了什麼。 如果==用於比較兩個參考。變量它只是檢查其參考,如果他們是相同的,然後它進入如果正文,那麼爲什麼地獄 aa == bb是相等的如果creting靜態方法valueOf()和ee == ff不等於(這是好的)如果創建它的對象使用新的關鍵字?運算符==包裝類對象的不同行爲
static void main(String args[])
{
Integer aa = Integer.valueOf("12");
Integer bb = Integer.valueOf("12");
if(aa==bb)System.out.println("aa==bb");
if(aa!=bb)System.out.println("aa!=bb");
Integer ee = new Integer("12");
Integer ff = new Integer("12");
if(ee==ff)System.out.println("ee==ff");
if(ee!=ff)System.out.println("ee!=ff");
}
輸出:
AA BB ==
EE = FF
一個有趣的文章,描述你的問題:http://tech.puredanger.com/2007/02/01/valueof/ –