दिलचस्प पोस्ट
क्यों "element.inner एचटीएमएल + =" बुरा कोड है? जॉप्शनपैन – उपयोगकर्ता इनपुट की जांच करें और शर्तों को पूरा होने तक बंद होने से रोकें एक ही कुंजी के साथ बहुआयामी सरणी के भीतर सरणी का मेल करना कंटेंट स्क्रिप्ट्स से क्रोम एक्सटेंशन अपडेट ठीक से कैसे व्यवस्थित करें I बाइट सरणी पैटर्न खोज जावास्क्रिप्ट कोड jsfiddle में काम करता है, लेकिन ब्राउज़र में नहीं डेटाबेस में पासवर्ड को स्टोर करने का सबसे अच्छा तरीका Php स्ट्रिंग से सभी एचटीएमएल टैग निकालें क्या सी # में मिक्सिक्स को लागू करना संभव है? पहचान द्वारा किसी वस्तु को संदर्भित करने का मानक तरीका (के लिए, उदाहरण के लिए, परिपत्र संदर्भ)? आंकड़ा टिक में घातीय स्वरूपण को दबाएं सूची <टी> गारंटी प्रविष्टि आदेश करता है? जब एक बटन को आईओएस क्लिक किया जाता है तो मैं फोन सेटिंग कैसे खोल सकता हूँ त्रुटि LNK2019: फ़ंक्शन ___tmainCRTStartup में संदर्भित अनसुलझे बाहरी चिह्न _मैन विशेष अक्षर SWIFT iOs के बिना वर्णांक के लिए RegEx

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

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

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

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

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));