thể trùng lặp:
Integer wrapper objects share the same instances only within the value 127?Tại sao == đúng đối với một số đối tượng Integer?
tôi đã sao chép đoạn mã chương trình sau đây từ Khalid Mughal SCJP, nhưng tôi không thể
hiểu đầu ra.
public class RQ200_60 {
public static void main(String[] args) {
Integer i = -10;
Integer j = -10;
System.out.print(i==j); // output: true -- why true?
System.out.print(i.equals(j)); // output: true
Integer n = 128;
Integer m = 128;
System.out.print(n==m); // output: false
System.out.print(n.equals(m)); // output: true
}
}
Chương trình trên đưa ra kết quả đúng cho câu lệnh in đầu tiên nhưng phải giả mạo vì đó là so sánh tham chiếu với toán tử quan hệ ==. Nhưng bản in thứ ba là sai và tôi không hiểu sự mâu thuẫn này.
Giải thích được đánh giá cao!
http://stackoverflow.com/ câu hỏi/7309640/so sánh hai số nguyên, http://stackoverflow.com/questions/5581913/wrapper-class-and-operator, http://stackoverflow.com/questions/5117132/wrapper-objects-share-the- cùng một địa chỉ-không gian-chỉ-trong-the-giá trị-127, http://stackoverflow.com/questions/5865056/integer-construction-variations –