ฉันไม่รู้ว่าเพราะเหตุใดบรรทัดโค้ดเหล่านี้จึงส่งกลับค่าที่ต่างกัน:
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()
มิฉะนั้นการเดิมพันทั้งหมดจะปิด