thể trùng lặp:
Integer wrapper objects share the same instances only within the value 127?
How != and == operators work on Integers in Java?kết quả bất ngờ khi so sánh ints
tôi đã cố gắng để so sánh hai ints với các trường hợp sau và có kết quả bất ngờ
khi tôi làm follo cánh, @@@ đã được in.
class C { static Integer a = 127; static Integer b = 127; public static void main(String args[]){ if(a==b){ System.out.println("@@@"); } } }
khi tôi làm như sau, @@@ không được in.
class C { static Integer a = 145; static Integer b = 145; public static void main(String args[]){ if(a==b){ System.out.println("@@@"); } } }
bất cứ ai có thể cho tôi biết những gì có thể là lý do.
Nếu ai đó có thể định dạng it..I là không thể ... – Rookie
thể trùng lặp của [Integer đối tượng bao bọc chia sẻ các trường hợp tương tự chỉ trong vòng giá trị 127?] (http://stackoverflow.com/questions/5117132/integer-wrapper-objects-share-the-same-instances-only-within-the-value-127) và [Số nguyên mới so với giá trịOf] (http://stackoverflow.com/questions/2974561) và [Hành vi không nhất quán trên java ==] (http://stackoverflow.com/questions/1148805) và [đối tượng bao bọc Integer chia sẻ cùng một trường hợp chỉ trong giá trị 127?] (http://stackoverflow.com/questions/5117132) và ... –
Thêm chi tiết nếu bạn quan tâm http://vanillajava.blogspot.co.uk/2012/01/surprise-results-of-autoboxing.html –