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