क्योंकि जेवीएम स्ट्रिंग के लिए स्ट्रिंग पूल का प्रबंधन करता है, जिससे यह किसी भी नए स्ट्रिंग असाइनमेंट के लिए दिखता है, इसी तरह, क्या हम किसी अन्य ऑब्जेक्ट या प्राइमेटिव्स का पूल विकसित कर सकते हैं?स्ट्रिंग के समान ऑब्जेक्ट पूल बनाना संभव है?
उत्तर
जावा स्ट्रिंग स्थिरांक के लिए आंतरिक पूल जावा कंपाइलर के लिए कुछ ज्ञात है, इसलिए आप अपने द्वारा सटीक व्यवहार की नकल नहीं कर सकते हैं।
पूल स्वयं ही हैश मानचित्र से अधिक कुछ नहीं है। यदि आपके ऑब्जेक्ट में उपयुक्त पहचानकर्ता है, तो आप निश्चित रूप से अपनी ऑब्जेक्ट्स के लिए पूल रोल कर सकते हैं: बस एक स्थिर विधि बनाएं जो एक कुंजी लेती है, इसे स्थिर हैश मैप में दिखती है, और केवल एक नई ऑब्जेक्ट बनाता है अगर इसे पूल नहीं किया गया हो अभी तक। नोट, हालांकि, इस सरल योजना के लिए काम करने के लिए आदेश में, आपके ऑब्जेक्ट को अपरिवर्तनीय होना आवश्यक है।
स्ट्रिंग पूल जावा, पूर्णांक और अन्य आवरण कक्षाओं में केवल पूल/कैश नहीं है कैश का उपयोग करें, आपको एक उदाहरण
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
आप भी एक बार देख ले सकते हैं के रूप में पूर्णांक स्रोत कोड पर एक नज़र ले जा सकते हैं http://commons.apache.org/proper/commons-pool//
- 1. असिनकॉल यूनिट का उपयोग करके थ्रेड पूल बनाना संभव है?
- 2. डेटाबेस कनेक्शन पूल बनाना
- 3. क्या सी # में कक्षा के बिना ऑब्जेक्ट बनाना संभव है?
- 4. क्या उद्देश्य सी में CLHeading ऑब्जेक्ट बनाना संभव है?
- 5. स्ट्रिंग पूल बनाम कॉन्स्टेंट पूल
- 6. स्ट्रिंग पूल व्यवहार
- 7. सी # - क्या पूल बॉक्स करना संभव है?
- 8. क्या स्क्रैच से इलिप्सिस (`...`) ऑब्जेक्ट बनाना संभव है?
- 9. क्या छवि ऑब्जेक्ट से encodeb64 बनाना संभव है?
- 10. क्या डाटा ऑब्जेक्ट ऑब्जेक्ट वैल्यू ऑब्जेक्ट के समान है?
- 11. Symfony2: रेफरर ऑब्जेक्ट अनुरोध ऑब्जेक्ट के समान है?
- 12. क्या कुंजीपटल लेआउट बनाना संभव है जो कीबोर्ड के समान है?
- 13. जावा स्ट्रिंग कॉन्स्टेंट पूल
- 14. इन्सेट ग्राफ बनाना संभव है?
- 15. क्या jQuery में नेमस्पेस बनाना संभव है?
- 16. चूंकि तार अपरिवर्तनीय हैं, समान स्ट्रिंग मान वाले वेरिएबल समान स्ट्रिंग ऑब्जेक्ट को इंगित करते हैं?
- 17. क्या खोज के लिए "वर्णमाला स्क्रॉल बार - समान" बनाना संभव है?
- 18. ऑब्जेक्ट पूल बनाम गतिशील आवंटन
- 19. ऑब्जेक्ट पूल क्लास में डेडलॉक
- 20. क्या टेम्पलेट उपनाम बनाना संभव है?
- 21. क्या डेटइंटरवाल ऑब्जेक्ट से "interval_spec" स्ट्रिंग प्राप्त करना संभव है?
- 22. क्या एक मॉक ऑब्जेक्ट बनाना संभव है जो EasyMock के साथ कई इंटरफेस लागू करता है?
- 23. क्या विस्तारणीय सूची AlertDialog बनाना संभव है?
- 24. क्या सीएसएस के माध्यम से छोटे सर्किल बनाना संभव है?
- 25. ट्विग: if_array या अगर कथन के भीतर समान संभव है?
- 26. क्या .NET के लिए कोई सामान्य उद्देश्य ऑब्जेक्ट पूल है?
- 27. स्ट्रिंग पूल सामग्री कैसे जांचें?
- 28. समान इंटीजर ऑब्जेक्ट
- 29. बनाना स्ट्रिंग प्रतिनिधित्व
- 30. ऑब्जेक्ट पूल डिजाइन पैटर्न का पाइथन कार्यान्वयन
इसलिए मूल रूप से स्थिर हैश मैप को बनाए रखना पूलिंग को दोहराएगा। सही? और इसका मतलब पूल-प्रकार में फ़ील्ड की संख्या कम है, कैशिंग का अधिक प्रभावी/कुशल होगा? – Ankit
@ ay89 सामान्य रूप से, पूलिंग केवल तभी प्रभावी होगी जब आपके द्वारा बनाई गई वस्तुओं के बीच बहुत अधिक नकल हो। आपके पास अपने पते, फोन नंबर इत्यादि के साथ ग्राहक का प्रतिनिधित्व करने वाले 30 फ़ील्ड वाले ऑब्जेक्ट हो सकते हैं। यदि आपके पास केवल 100 ग्राहक हैं, तो आपके पूलिंग बहुत सारे फ़ील्ड वाले वर्गों के साथ भी बहुत कुशल होंगे। यदि, दूसरी तरफ, आप कक्षाओं को पूल करने का प्रयास करते हैं जो 2 डी (पूर्णांक के जोड़े) में निर्देशांक का प्रतिनिधित्व करते हैं, और इसे 10,000 यादृच्छिक रूप से जेनरेट किए गए निर्देशांक के सेट पर उपयोग करते हैं, कैशिंग बिल्कुल कुशल नहीं होने वाली है, भले ही केवल दो फ़ील्ड – dasblinkenlight
ठीक है, लेकिन यदि बड़ी संख्या में फ़ील्ड की अधिक डुप्लिकेट ऑब्जेक्ट्स हैं, तो पूलिंग मेमोरी के मामले में प्रभावी होगी। लेकिन साथ ही, मुझे लगता है कि यह अधिक समय का उपभोग करेगा, यह तय करने के लिए कि संख्या वस्तु डुप्लिकेट है या नहीं, बड़ी संख्या में फ़ील्ड की तुलना करें। सही? – Ankit