क्यों हैं मैं जेवीएम विनिर्देश में पढ़ता हूं कि डेटा प्रकार बाइट, शॉर्ट और चार आंतरिक रूप से int के रूप में माना जाता है। तो इन आंकड़ों के प्रकार क्यों हैं यदि हमारे पास उनके छोटे आकार से लाभ नहीं है?डेटा प्रकार बाइट, चार और कम आवश्यक
उत्तर
भाग में यह C/C++ साथ संगतता के लिए है, और भाग में यह स्मृति के संरक्षण के लिए है - आंतरिक रूप से, एक छोटी एक छोटी के रूप में जमा है, लेकिन यह एक पूर्णांक के रूप में संसाधित है। new short[10]
new int[10]
+1: ज्यादातर, सरणी। स्टैक पर या स्थानीय चर में एक 'बाइट'' int 'के रूप में उतना ही कमरा लेता है (फ़ील्ड जेवीएम इसे अनुकूलित कर सकता है, अगर यह काम करता है)। –
मेमोरी के इशारे के लिए आधा जितना मेमोरी लेता है। प्रत्येक चर में एक मेमोरी स्पेस होता है। अंतरिक्ष का आकार आपके द्वारा उपयोग किए जाने वाले चर के प्रकार पर निर्भर करता है।
अन्यथा, जब आप स्ट्रिंग में हेरफेर करते हैं तो टाइप चार बहुत उपयोगी होता है। वास्तव में, स्ट्रिंग.charAt (अनुक्रमणिका)
का उपयोग कर स्ट्रिंग का एक वर्ण हो सकता है, दिए गए उत्तर बहुत अच्छे हैं, लेकिन मैं एक और संभावित उपयोग इंगित करूंगा। आप डेटा प्रकारों की कुछ संकलन समय जांच कर सकते हैं। उदाहरण के लिए, आपके पास एक बाइट के रूप में किसी व्यक्ति की उम्र (वर्षों में) हो सकती है, और आप यह सुनिश्चित करने के लिए संकलन समय जांच कर सकते हैं कि उस क्षेत्र के लिए int या short में संग्रहीत एक बड़ा मूल्य उपयोग किया जाए।
- 1. प्रकार चार से कम
- 2. 1 बाइट पूर्णांक डेटा प्रकार
- 3. जावा बाइट डेटा प्रकार
- 4. बाइट में चार? (जावा)
- 5. [] बाइट से चार *
- 6. चार बनाम बाइट सरणियों
- 7. जावा में बाइट और चार रूपांतरण
- 8. स्थिरांक चार * और चार *
- 9. चार अस्थिर और आवश्यक क्यों और कब डाला जाता है?
- 10. चार प्रकार Incrementing जावा
- 11. बाइट [] से बफर प्रकार
- 12. जावा: चार बनाम स्ट्रिंग बाइट आकार।
- 13. पूर्णांक में श्रृंखलाबद्ध बाइट या कम संकेत
- 14. एसक्यूएल चार और सी #
- 15. जावा UTF8 एन्कोडिंग - चार, स्ट्रिंग प्रकार
- 16. चार तर्कों से कम कार्यों के लिए आवश्यक स्टैक स्पेस आरक्षित कर रहा है?
- 17. जावास्क्रिप्ट चर प्रकार (बाइट)
- 18. क्या प्रोटोबफ में एक-बाइट प्रकार है?
- 19. URL कनेक्शन कम स्तर बाइट गिनती
- 20. जावा एक 3 बाइट यूनिकोड चरित्र को चार प्रकार में फिट कैसे करता है?
- 21. प्रारूप '% s' प्रकार के 'चार *'
- 22. क्या कोई .NET डेटा-प्रकार बाइट से छोटा है?
- 23. NumPy: 3-बाइट, 6-बाइट प्रकार (उर्फ uint24, uint48)
- 24. एंड्रॉइड: वास्तव में कम से कम 2 बाइट लेता है?
- 25. हास्केल, चार, यूनिकोड, और तुर्की
- 26. चार सरणी बनाम चार सूचक
- 27. स्काला कम प्रकार सीमा और सहप्रसरण
- 28. Symfony2 रूटिंग: दो वैकल्पिक पैरामीटर - आवश्यक कम से कम एक
- 29. Laravel "कम से कम एक" फ़ील्ड आवश्यक सत्यापन
- 30. बाइट सरणी (चार सरणी) को एक पूर्णांक प्रकार (लघु, int, लंबा)
ज्यादातर सरणी के लिए। शॉर्ट्स की एक सरणी अभी भी एक ही आकार के पूर्णांक की सरणी के रूप में आधे जितनी मेमोरी का उपयोग करती है। – MTilsted
मुझे यकीन है कि विभिन्न अभिन्न प्रकारों की मान सीमाओं के आधार पर बहुत सारे एल्गोरिदम हैं, उदाहरण के लिए, निश्चित बिंदु पर अभिन्न मूल्य को ओवरफ़्लो की अपेक्षा करना। –
स्मृति मामलों के अलावा, इन बुनियादी संख्यात्मक प्रकार अक्सर संचार प्रोटोकॉल या कोड को संभालने में कामयाब होते हैं जो जावा कोड के बाहर परिभाषित कॉम्पैक्ट संरचनाओं के साथ इंटरैक्ट करते हैं। बेशक, अगर भाषा के डिजाइनरों ने वास्तव में इस उपयोग के मामले की परवाह की थी, तो उन्होंने भाषा में बिना हस्ताक्षर किए गए प्रकार जोड़े होंगे ताकि हमें 'बीएंड 0 एक्सएफएफ' जैसी भयानक चाल की आवश्यकता न हो ... –