जावा में बॉक्सिंग और ऑटोबॉक्सिंग के बीच क्या अंतर है? कई जावा प्रमाणन पुस्तकें दो ऐसी शर्तों का उपयोग करती हैं। क्या वे बॉक्सिंग के समान चीज का उल्लेख करते हैं?जावा में बॉक्सिंग और ऑटोबॉक्सिंग के बीच क्या अंतर है?
उत्तर
मुक्केबाजी (यानी, int
से Integer
करने के लिए) तंत्र है; ऑटोबॉक्सिंग कंपाइलर की विशेषता है जिसके द्वारा यह आपके लिए मुक्केबाजी कोड उत्पन्न करता है।
, यदि आप कोड में लिखें:
// list is a List<Integer>
list.add(3);
तो संकलक स्वचालित रूप से मुक्केबाजी कोड आपके लिए बनाए गए; "अंतिम परिणाम" कोड में होगा:
list.add(Integer.valueOf(3));
क्यों Integer.valueOf()
और नहीं new Integer()
के बारे में एक नोट: मूल रूप से, क्योंकि JLS तो कहते हैं :) का हवाला देते हुए section 5.1.7:
मूल्य हैं पी बॉक्सिंग किया गया है रेंज \ u0000 से \ u007f, या एक int या लघु संख्या -128 और 127 (समावेशी) के बीच, फिर r1 और r2 परिणाम होने दें किसी भी दो बॉक्स के पी 0 के रूपांतरण रूपांतरण। यह हमेशा ऐसा होता है कि r1 == r2।
और यदि आप "मात्र" निर्माता का उपयोग करते हैं तो आप इस आवश्यकता को लागू नहीं कर सकते हैं। एक कारखाना विधि, जैसे Integer.valueOf()
, कर सकते हैं।
पूरी तरह से डाल दिया। .. –
अच्छे उदाहरण के साथ .. :) –
मेरी समझ में, "बॉक्सिंग" का अर्थ है "स्पष्ट रूप से एक प्राचीन मूल्य के चारों ओर एक रैपर का निर्माण"। उदाहरण के लिए:
int x = 5;
Integer y = new Integer(x); //or Integer.valueOf(x);
इस बीच, "autoboxing" का अर्थ है "परोक्ष एक आदिम मूल्य के चारों ओर एक आवरण का निर्माण"। उदाहरण के लिए:
Integer x = 5;
autoboxing स्वत: परिवर्तन है कि जावा आदिम प्रकार कर उनके संबंधित वस्तु आवरण वर्गों के बीच बना देता है। उदाहरण के लिए, एक int को एक इंटीजर में परिवर्तित करना, एक डबल से डबल, और इसी तरह। यदि रूपांतरण दूसरी तरफ जाता है, तो इसे अनबॉक्सिंग कहा जाता है।
- अनबॉक्सिंग आदिम डेटाप्रकार के आवरण श्रेणी से रूपांतरण है। उदाहरण के लिए। जब आप एक इंटेल की उम्मीद करते हैं तो एक इंटीजर पास करते हैं।
- ऑटोबॉक्सिंग एक प्राचीन डेटाटाइप से इसके संबंधित रैपर-वर्ग में स्वचालित रूपांतरण है। उदाहरण के लिए। जब आप एक इंटीजर ऑब्जेक्ट की अपेक्षा करते हैं तो जब आप एक int पास करते हैं।
- 1. जावा में int.class और Integer.TYPE के बीच क्या अंतर है?
- 2. जावा में इंटरफ़ेस और @ इंटरफेस के बीच क्या अंतर है?
- 3. जावा में स्ट्रीम और पाठक के बीच क्या अंतर है?
- 4. जावा में System.getProperty और Properties.getProperty के बीच क्या अंतर है
- 5. जावा में संग्रह और सूची के बीच क्या अंतर है?
- 6. जावा में चार और वर्ण के बीच क्या अंतर है?
- 7. जावा में बूलियन और बूलियन के बीच क्या अंतर है?
- 8. ! = और = के बीच क्या अंतर है! जावा में?
- 9. जावा में संदर्भ और वस्तुओं के बीच क्या अंतर है?
- 10. जावा जेनेरिक में '&' और ',' के बीच क्या अंतर है?
- 11. जावा में फ्लोट और फ्लोट के बीच क्या अंतर है?
- 12. जावा में a.getClass() और A.class के बीच क्या अंतर है?
- 13. के बीच क्या अंतर है? और जावा जेनरिक में ऑब्जेक्ट?
- 14. जावा में, this.method() और विधि() के बीच क्या अंतर है?
- 15. जावा और कोर जावा के बीच क्या अंतर है?
- 16. जावा में स्ट्रिंग कंसटेनेशन और ऑटोबॉक्सिंग
- 17. जावा और जावा के बीच अंतर
- 18. जावा: एनआईओ और एनआईओ 2 के बीच क्या अंतर है?
- 19. जावा आरएमआई और जेएमएस के बीच क्या अंतर है?
- 20. जावा: sv और sv_SE लोकेल के बीच क्या अंतर है?
- 21. जावा और जेएसपी के बीच क्या अंतर है?
- 22. स्कैला @ सेरियलज़ेबल और जावा सीरियलज़ेबल के बीच क्या अंतर है?
- 23. क्या $ @ और "$ @" के बीच कोई अंतर है?
- 24. # {} $ {} और% {} के बीच क्या अंतर है?
- 25. * और * के बीच क्या अंतर है?
- 26. के बीच क्या अंतर है:। और: आर !?
- 27. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 28. वेरिलोग के बीच क्या अंतर है! और ~?
- 29. `&` और `ref` के बीच क्या अंतर है?
- 30. $ और $$ के बीच क्या अंतर है?
यह अनबॉक्सिंग है, बॉक्सिंग – Bikku
@UUIIUI नहीं – fge
@ टुनकी वेल, जरूरी नहीं है।इसे मुक्केबाजी माना जा सकता है: 'इंटीजर i = नया इंटीजर (1);' और यह ऑटोबॉक्सिंग 'इंटीजर i = 1; '। हालांकि यह सिर्फ अप्रासंगिक अर्थशास्त्र है। – Kayaman