मैं निम्नलिखित कोड है:तुलना पूर्णांक वस्तुओं
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
Integer foo = new Integer(1);
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
उत्पादन इस प्रकार है के रूप में:
2. true
हालांकि एक int
को Integer object
का प्रकार बदलने उदाहरण के लिए एक अलग उत्पादन का उत्पादन होगा,:
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
int foo = 1;
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
नया आउटपुट:
1. true
2. true
यह कैसे हो सकता है? पहला उदाहरण कोड आउटपुट 1. true
क्यों नहीं है?
क्या आप सुनिश्चित हैं कि पहला आउटपुट 2. सत्य नहीं है? अन्यथा, कुछ भी समझ में आता है। – ILMTitan
हां, क्षमा करें, फ़ॉर्मेटिंग ने 2 को 1 से बदल दिया है। –
संभावित डुप्लिकेट: [जावा में दो इंटीग्रर्स की तुलना करते समय ऑटो-अनबॉक्सिंग होती है?] (Http://stackoverflow.com/q/1514910/1164465) –