當代碼被工具標黃色高亮時,代表需要優化或重構了
==
是值相等。對於Integer這樣的數據類型而言,意義是兩個Integer對象的內存地址相等。也就是說如果你有兩個不同的Integer的對象,
如果是兩個數字對象用==比較,比較的是對象地址(是否同一個對象,而不是”數值“)
哪怕他們的值一樣,用==
判斷也是不相等的。
如果是基本類型int,用equals也是可以的。因為編譯器會自動把int裝箱為Integer。
Integer a = new Integer(10); Integer b = new Integer(10); System.out.println(a.equals(b)); ===> TRUE System.out.println(a == b); ===> FALSE
結論,Integer對象盡量使用equals,避免報警告