दिलचस्प पोस्ट
पायथन स्रोत कोड एन्कोडिंग को परिभाषित करने का सही तरीका ग्रुप द्वारा गठबंधन / एक कॉलम को संरेखित करें एंड्रॉइड में विदेशी कुंजी बाधाएं SQLite का उपयोग कर रही हैं? पर झरना हटाना परियोजनाओं के लिए App.Config परिवर्तन जो Visual Studio 2010 में वेब प्रोजेक्ट्स नहीं हैं? एएसपी एमवीसी 3 में एक दृश्य में दो मॉडल स्प्रिंग एमवीसी 404 के साथ क्यों प्रतिक्रिया करता है और रिपोर्ट "डिस्पैचर सर्कल में यूआरआई के अनुरोध के लिए कोई मानचित्रण नहीं मिला ?" कैसे एक Win32 प्रक्रिया अपने माता पिता के pid मिलता है? एकता खेल प्रबंधक स्क्रिप्ट केवल एक बार काम करता है आर में वैश्विक और स्थानीय चर एक नकारात्मक संख्या की तुलना करते समय यह आकार ऑपरेटर के साथ क्यों हो रहा है? 'Microsoft.ACE.OLEDB.12.0' प्रदाता स्थानीय मशीन पर पंजीकृत नहीं है कैसे पीएचपी में सरल एक को एक "बहु-आयामी सरणी" को "समतल" करना है? मेवेन स्कोप के बीच का अंतर संकलन और जेआर पैकेजिंग के लिए प्रदान किया गया है एंड्रॉइड: प्रोग्राम हार्डवेयर से पता चलता है कि डिवाइस हार्डवेयर मेनू बटन है या नहीं PostgreSQL समर्थन "असंवेदनशील असंवेदनशील" collations करता है?

पूर्णांक आवरण वर्ग और == ऑपरेटर – जहां व्यवहार निर्दिष्ट है?

Integer integer1 = 127; Integer integer2 = 127; System.out.println(integer1 == integer2);//true integer1 = 128; integer2 = 128; System.out.println(integer1 == integer2);//false 

मुझे पता चला कि यह == (यदि ऐसा है) -128 - 127 अंतर्गत देता है, तो ऐसा विनिर्देश क्यों है?

वेब के समाधान से एकत्रित समाधान "पूर्णांक आवरण वर्ग और == ऑपरेटर – जहां व्यवहार निर्दिष्ट है?"

Integer.valueOf(int) में इस कोड के कारण:

 public static Integer valueOf(int i) { if(i >= -128 && i <= IntegerCache.high) return IntegerCache.cache[i + 128]; else return new Integer(i); } 

स्पष्टीकरण:

Integer integer1 = 127 Integer integer1 = Integer.valueOf(127) लिए एक शॉर्टकट है, और -128 और 127 (समावेशी) के बीच के मानों के लिए, Integer integer1 = Integer.valueOf(127) कैश में रखा जाता है और कई बार लौटा जाता है, जबकि उच्च और निम्न संख्याएं नए इंटेजर्स उत्पन्न करती हैं हर बार।

== अगर वह सटीक समान ऑब्जेक्ट होता है तो सही लौटाएगा उस सीमा के भीतर जावा 'इंटर्न' संख्याओं में बॉक्सिंग इंटिजर्स, इसलिए ऐसे नंबर का कोई भी बॉक्स्ड संस्करण सटीक एक ही ऑब्जेक्ट में परिणाम देगा।

तुलना में इस प्रभाव से बचने के लिए, उपयोग करें। (बराबर)

 System.out.println(integer1.equals(integer2));