यदि कोई विधि डबल लौटाती है, तो हम उस विधि को "डबलवैल्यू" क्यों कहते हैं? यह पहले से ही एक डबल और गणना देता है, सही ढंग से मूल्यांकन करने के लिए प्रतीत होता है।जावा में डबल बनाम डबलव्यू
उत्तर
जावा 1.5 से पहले ऑटो-मुक्केबाजी (और अनबॉक्सिंग) जावा में मौजूद नहीं था। तो, आपको डबल से अंतर्निहित आदिम निकालने के लिए इसकी आवश्यकता होगी।
यदि आप ऑटो-मुक्केबाजी से अपरिचित हैं, तो आप यहां और पढ़ सकते हैं। http://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html
बॉक्स किए गए ऑब्जेक्ट से आदिम डेटा प्रकार में कनवर्ट करने के लिए आप डबल ऑब्जेक्ट पर 'डबलवैल्यू' कहते हैं। चूंकि अधिकांश बार डबल को डबल-अनबॉक्स किया जाता है, इसलिए आपको आमतौर पर ऐसा करने की आवश्यकता नहीं होती है, लेकिन यदि आप अपने रूपांतरण में स्पष्ट होना चाहते हैं, तो आप इस विधि को कॉल कर सकते हैं।
यदि आप से प्राप्त करने की आवश्यकता है तो आप doubleValue
पर कॉल करेंगे। पूर्व एक आदिम प्रकार है, जबकि उत्तरार्द्ध एक रैपर ऑब्जेक्ट प्रकार है, जो मूल रूप से एक अपरिवर्तनीय वस्तु के अंदर एक आदिम मूल्य encapsulates। यदि संभव हो (और मैं इसे आपके कोड के बिल्कुल सही उद्देश्य के बिना कह रहा हूं), तो अपनी सभी गणनाओं के लिए double
का उपयोग करें; केवल Double
का उपयोग करें यदि आपको Collection
या Map
में मानों को संग्रहीत करने की आवश्यकता है; ऐसा इसलिए है क्योंकि ऑब्जेक्ट प्रकार अधिक मेमोरी का उपभोग करते हैं और कास्टिंग ऑपरेशंस के अधीन हो सकते हैं।
double
Double
के साथ गलती करना आसान है (एक ही चीज अन्य आदिम प्रकार बनाम रैपर प्रकारों के लिए लागू होती है), क्योंकि संकलक ऑटो-मुक्केबाजी (और ऑटो -नबॉक्सिंग), इसलिए सही प्रकार का उपयोग करने के लिए थोड़ी सावधानी बरतनी चाहिए।
और बस इसे थोड़ा जोड़ने के लिए, और स्पष्ट रूप से यह बताएं: गणितीय परिचालन और परीक्षण (अंकगणित, तुलना, आदि) 'डबल', केवल 'डबल' के साथ नहीं किया जा सकता है। – yshavit
doubleValue एक आदिम डबलडबल वस्तु से वापस आती है। परिदृश्य के आधार पर, आप एक डबल से डबल प्राप्त करना चाहते हैं।
- 1. फ्लोट बनाम डबल (जावा में)
- 2. जावा: डबल बनाम फ्लोट
- 3. लंबे डबल बनाम डबल
- 4. जावा: तुलना में अलग डबल और डबल
- 5. बनाम डबल प्रेषण
- 6. बनाम 2010 - डबल कोट्स
- 7. सिंगल बनाम डबल डेटाटाइप
- 8. डबल जावास्क्रिप्ट में एकल उद्धरण बनाम उद्धरण
- 9. प्रदर्शन स्वैपिंग पूर्णांक बनाम डबल
- 10. डबल .valueOf (ओं) बनाम Double.parseDouble
- 11. लंबे डबल बनाम लंबे int
- 12. जावा डबल चेक लॉकिंग
- 13. जावा डबल प्रारंभिकरण
- 14. जावा में लांग टू डबल से रूपांतरण
- 15. जावा: स्विंग में डबल-बफरिंग कैसे करें?
- 16. जावा में जेटीबल पर डबल क्लिक श्रोता
- 17. एक स्ट्रिंग को डबल में बदलें - जावा
- 18. जावा विधि ओवरलोडिंग + डबल प्रेषण
- 19. चेक अगर एक डबल जावा
- 20. जावा स्टोर कैसे फ्लोट बनाम
- 21. डबल? = डबल? + डबल?
- 22. जावास्क्रिप्ट में डबल नहीं (!!) बनाम प्रकार का दबाव
- 23. बैश: फ़ाइल परीक्षण अभिव्यक्ति मूल्यांकन में डबल बनाम एकल ब्रैकेट
- 24. एंड्रॉइड में सी ++ बनाम जावा
- 25. जावा में जेपीनल बनाम जेएफआरएम
- 26. जावा बनाम सी ++ में बिल्डर्स?
- 27. जावा में डबल से फ्लोट में कनवर्ट करना
- 28. जावा का डबल डॉट कॉम (डबल, डबल) जिस तरह से लागू हुआ है?
- 29. सी/सी ++ बनाम जावा/सी #
- 30. जावा में स्कैला बनाम क्लोजर में बंद
तो लिंक से यह सुझाव देता है कि आप ऑटोबॉक्सिंग और ऑटोऑनबॉक्सिंग से प्रदर्शन हिट करते हैं। एक प्रदर्शन महत्वपूर्ण लूप में, क्या आप अनगिनत जुर्माना से बचने के लिए myDouble.doubleValue() को कॉल कर सकते हैं? – MedicineMan
@MedicineMan नहीं, अनबॉक्सिंग सिर्फ इतना है कि संकलक 'डबल foo = myDouble' को आपके लिए' double foo = myDouble.doubleValue() 'में बदल देगा - विधि को स्पष्ट रूप से कोई फर्क नहीं पड़ता। प्रदर्शन हिट का बड़ा हिस्सा बॉक्स में 'डबल' ऑब्जेक्ट को पहले स्थान पर बनाया गया है (और, शायद कम डिग्री पर, मूल्य पर प्राप्त करने के लिए एक स्टैक var के बजाय हीप मेमोरी तक पहुंचने में)। – yshavit
यशवित ने इसे दबाया। दंड से बचने का एकमात्र तरीका डबल <--> डबल के बीच किसी भी संक्रमण से बचने के लिए है। हालांकि, यह अक्सर अव्यवहारिक होता है, खासकर यदि आप किसी भी संग्रह का उपयोग करना चाहते हैं। इसके अलावा, यह एक * बहुत * दुर्लभ मामला होगा जहां यह वास्तव में एक आवेदन के लिए एक प्रदर्शन बाधा है। – rfeak