[J2SE] equals問題

看板java作者 (不多話的小孩)時間18年前 (2008/01/02 20:16), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
我還是個新手,當書介紹到equals的部份時 有個兩個範例 範例一: Integer i=12345; Integer i2=12345; System.out.println(i==i2); System.out.println(i.equals(i2)); 執行後為false和true,因為i跟i2代表不同Integer物件,但兩個物件均為12345‧ 但範例二: Integer i=123; Integer i2=123; System.out.println(i==i2); System,.out.println(i.equals(i2)); 執行後為true和true,i跟i2代表相同Integer物件‧ 但是我的問題是,只是把45刪掉,為什麼就變成一個是false,一個true呢? 可以幫我解答一下嗎?這兩個我看了好久都看不出所以然? -- 真是溫暖在心頭‧甜在心饅頭 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.127.134.2

01/02 20:24, , 1F
Constant Pool, 在 -128~127 之間的值只會存在一份
01/02 20:24, 1F
文章代碼(AID): #17Uu2ZBb (java)