संक्षिप्त उत्तर: नहीं, लंबे शॉट से नहीं। जेवीएम तार काफी भारी होने के लिए जाने जाते हैं; ऑब्जेक्ट में न केवल वर्ण सरणी के लिए एक सूचक है बल्कि इसकी लंबाई भी है। और आंतरिक भंडारण यूटीएफ -16 कोडपॉइंट्स का उपयोग करता है, इसलिए आपका प्रश्न "क्या यह 6 बाइट्स ले सकता है?" :-)
JVM का तकनीकी संदर्भ आपको स्ट्रिंग ऑब्जेक्ट्स का सटीक आकार देगा। आप कुछ रोचक ब्लॉग पोस्ट such as this one और तकनीकी लेख भी पा सकते हैं।
स्ट्रिंग ऑब्जेक्ट्स के सटीक आकार के प्रश्न के लिए एक अच्छा सौदा है। हम ऑब्जेक्ट प्वाइंटर्स, स्ट्रिंग इंटर्निंग इत्यादि के संपीड़न में शामिल हो सकते हैं। यह भी तथ्य है कि स्ट्रिंग्स अपरिवर्तनीय हैं, इसलिए हम अक्सर स्ट्रिंग मेमोरी साझा करते हैं, जैसा कि आप उदाहरण के लिए substring
पर कॉल करते हैं।
हालांकि, हमेशा सत्य क्या है: यह 3 बाइट से अधिक है।
स्रोत
2012-09-16 14:53:25
'स्ट्रिंग' कक्षा के लिए स्रोत पढ़ें। – SLaks
यदि आप स्ट्रिंग क्लास के लिए स्रोत पढ़ते हैं तो आप देखेंगे कि यह लंबाई को संग्रहीत करता है, यह यह है कि यह कैसे जानता है कि स्ट्रिंग कितनी देर तक है। बीटीडब्ल्यू "एबीसी" स्मृति के लगभग 48 बाइट्स का उपयोग करता है। –