2013-06-05 12 views
7

क्यों हैं मैं जेवीएम विनिर्देश में पढ़ता हूं कि डेटा प्रकार बाइट, शॉर्ट और चार आंतरिक रूप से int के रूप में माना जाता है। तो इन आंकड़ों के प्रकार क्यों हैं यदि हमारे पास उनके छोटे आकार से लाभ नहीं है?डेटा प्रकार बाइट, चार और कम आवश्यक

+3

ज्यादातर सरणी के लिए। शॉर्ट्स की एक सरणी अभी भी एक ही आकार के पूर्णांक की सरणी के रूप में आधे जितनी मेमोरी का उपयोग करती है। – MTilsted

+3

मुझे यकीन है कि विभिन्न अभिन्न प्रकारों की मान सीमाओं के आधार पर बहुत सारे एल्गोरिदम हैं, उदाहरण के लिए, निश्चित बिंदु पर अभिन्न मूल्य को ओवरफ़्लो की अपेक्षा करना। –

+1

स्मृति मामलों के अलावा, इन बुनियादी संख्यात्मक प्रकार अक्सर संचार प्रोटोकॉल या कोड को संभालने में कामयाब होते हैं जो जावा कोड के बाहर परिभाषित कॉम्पैक्ट संरचनाओं के साथ इंटरैक्ट करते हैं। बेशक, अगर भाषा के डिजाइनरों ने वास्तव में इस उपयोग के मामले की परवाह की थी, तो उन्होंने भाषा में बिना हस्ताक्षर किए गए प्रकार जोड़े होंगे ताकि हमें 'बीएंड 0 एक्सएफएफ' जैसी भयानक चाल की आवश्यकता न हो ... –

उत्तर

8

भाग में यह C/C++ साथ संगतता के लिए है, और भाग में यह स्मृति के संरक्षण के लिए है - आंतरिक रूप से, एक छोटी एक छोटी के रूप में जमा है, लेकिन यह एक पूर्णांक के रूप में संसाधित है। new short[10]new int[10]

+2

+1: ज्यादातर, सरणी। स्टैक पर या स्थानीय चर में एक 'बाइट'' int 'के रूप में उतना ही कमरा लेता है (फ़ील्ड जेवीएम इसे अनुकूलित कर सकता है, अगर यह काम करता है)। –

1

मेमोरी के इशारे के लिए आधा जितना मेमोरी लेता है। प्रत्येक चर में एक मेमोरी स्पेस होता है। अंतरिक्ष का आकार आपके द्वारा उपयोग किए जाने वाले चर के प्रकार पर निर्भर करता है।

अन्यथा, जब आप स्ट्रिंग में हेरफेर करते हैं तो टाइप चार बहुत उपयोगी होता है। वास्तव में, स्ट्रिंग.charAt (अनुक्रमणिका)

1

का उपयोग कर स्ट्रिंग का एक वर्ण हो सकता है, दिए गए उत्तर बहुत अच्छे हैं, लेकिन मैं एक और संभावित उपयोग इंगित करूंगा। आप डेटा प्रकारों की कुछ संकलन समय जांच कर सकते हैं। उदाहरण के लिए, आपके पास एक बाइट के रूप में किसी व्यक्ति की उम्र (वर्षों में) हो सकती है, और आप यह सुनिश्चित करने के लिए संकलन समय जांच कर सकते हैं कि उस क्षेत्र के लिए int या short में संग्रहीत एक बड़ा मूल्य उपयोग किया जाए।

संबंधित मुद्दे