Integer i01=2;
int i02=59;
Integer i03=Integer.valueOf(59);
Integer i04=new Integer(59);
System.out.println(i01==i02);
System.out.println(i01==i03);
System.out.println(i03==i04);
System.out.println(i02==i04);
為什麼輸出是
false
false
false
true
求解釋。。越詳細約好
Integer i01=2;
int i02=59;
Integer i03=Integer.valueOf(59);
Integer i04=new Integer(59);
見過類似的問題 估計i01是Integer i01=59; 而不是2 如果是59的話 i01==i02 為true 有個int基本數據類型會強轉類型進行值得比較 true
i01==i02 Integer i01=2; i01是integer類型 是類 和 int i02=59;比較時會強制轉換成int類型進行比較 2==59 肯定不對 false
i01==i03 一個是2一個強轉後是59 false
i03==i04這兩個都是integer包裝類 它們在一起用==比較的話 比較的是存放數據的地址值 而不是自己所被賦予的值 false
i02==i04 02是int基本數據類型的 所以比較的是值 true