為什么在 Java 中128==128返回false,而127==127返回true呢?
有這樣一段代碼
Integer a=127; Integer b=127; System.out.println(a==b); Integer c=128; Integer d=128; System.out.println(c==d);
運行結果為:
true false
究竟是為什么呢?
如果兩個引用指向相同的對象,它們在 ==
表達式中是相等的;如果兩個引用指向不同的對象,盡管它們擁有相同的內容即值,在 ==
表達式中也是不相等的。
查看源碼你就會發現,在Integer類的內部設置了緩存,為-128到127之間,所以只要在這個區間之間,就是同一對象,並沒有創建新的對象
歡迎添加本人微信,帶你加入Java學習交流群,還有學習資料等你獲取。