ฉันไม่รู้ว่าเพราะเหตุใดบรรทัดโค้ดเหล่านี้จึงส่งกลับค่าที่ต่างกัน:
System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));
System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));
System.out.println(Integer.parseInt("128")==Integer.valueOf("128"));
ผลลัพธ์คือ:
true
false
true
ทำไมคนแรกถึงกลับมาtrueและคนที่สองกลับมาfalse? มีอะไรที่แตกต่างที่ฉันไม่รู้ระหว่าง127และ128? (แน่นอนฉันรู้ว่า127< 128.)
นอกจากนี้ทำไมหนึ่งในสามกลับมาtrue?
ฉันได้อ่านคำตอบของคำถามนี้แล้ว แต่ฉันยังไม่เข้าใจว่ามันจะกลับมาได้trueอย่างไรและทำไมโค้ดในบรรทัดที่สองจึงกลับfalseมา
.equals()มิฉะนั้นการเดิมพันทั้งหมดจะปิด