क्या जावा के स्ट्रिंग मेमोरी पूल का कार्यान्वयन फ्लाईवेट पैटर्न का पालन करता है?जावा की स्ट्रिंग इंटरफ़ेस एक फ्लाईवेट है?
मुझे यह संदेह क्यों है, मैं देखता हूं कि आंतरिक में कोई बाहरी राज्य शामिल नहीं है। गोफ में मैंने पढ़ा है कि आंतरिक और बाह्य राज्य के बीच सही संतुलन होना चाहिए। लेकिन इंटर्न में सब कुछ आंतरिक है।
या हम कहेंगे कि गुणों के संबंध में कोई सख्त नियम नहीं है और केवल स्मृति को कम करने के लिए वस्तुओं को साझा करना पर्याप्त रूप से इसे उड़ाने के लिए पर्याप्त है।
कृपया मुझे समझने में मदद करें।
फ्लाईवेट ऑब्जेक्ट में अंतर्निहित स्थिति धारण करना और बाह्य राज्य जानकारी उत्तीर्ण करना - क्या हमें इसके बारे में चिंता करने की ज़रूरत है? क्योंकि गोफ बुक में, मैं आंतरिक/बाह्य के अलगाव के प्रति अधिक महत्व संलग्न करता हूं। यहां चार [] फ्लाईवेट में, आंतरिक और बाह्य क्या है? –
यह आसान है - 'char []' पूरी तरह से आंतरिक है, और ऑब्जेक्ट स्ट्रिंग पूरी तरह से बाह्य है। एक स्ट्रिंग का उपयोग करके आप यह भी नहीं जानते कि 'char []' मौजूद है। –
हॉटस्पॉट कार्यान्वयन अंततः ऑफसेट और लम्बाई फ़ील्ड के बिना सटीक लंबाई 'char []' (या संभवतः 'बाइट []') का उपयोग करने के लिए बदल रहा है। वास्तव में 'char [] 'को एक अलग आवंटन के रूप में भी समाप्त किया जाना चाहिए। –