Một người nào đó đã đề xuất trong một số chuỗi diễn đàn mà nhiều người và thậm chí cả các nhà phát triển Java có kinh nghiệm sẽ không hiểu được sự an toàn của Mã Java sau đây.Hành vi khó hiểu của == sau khi gửi thư
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1++ == i2++);
System.out.println(i1 == i2);
Là một người quan tâm đến Java, tôi đã đưa ra suy nghĩ của mình và đưa ra kết quả sau.
System.out.println(i1++ == i2++);
// True, since we first check for equality and increment both variables afterwards.
System.out.println(i1 == i2);
// True again, since both variables are already incremented and have the value 128
Eclipse nói cách khác. Dòng đầu tiên là true và dòng thứ hai là false.
Tôi thực sự sẽ đánh giá cao giải thích.
Câu hỏi thứ hai. Java này có cụ thể hay ví dụ này giữ ví dụ cho các ngôn ngữ dựa trên C?
thử 'i1.equals (i2)' – vikingsteve
http://stackoverflow.com/questions/5117132/integer-wrapper-objects-share-the-same-instances-only-within-the-value-127 –
Điều này câu hỏi là cực kỳ tương tự như một được đăng bởi @DominikKunicki –