स्ट्रिंग्स की वास्तुशिल्प अपरिवर्तनीयता:
जावा में, स्ट्रिंग्स को java.lang.String वर्ग द्वारा दर्शाया जाता है। आदिम वर्णों के विपरीत, एक स्ट्रिंग ऑब्जेक्ट अपरिवर्तनीय है - इसके वर्ण सरणी को निर्माण के बाद संशोधित, आकार बदलने या अधिलेखित नहीं किया जा सकता है। कोई भी विधि जो स्ट्रिंग को संशोधित करती प्रतीत होती है (जैसे concat(), replace(), या toUpperCase()) मूल उदाहरण को नहीं बदलती है; यह ढेर पर पूरी तरह से नया स्ट्रिंग ऑब्जेक्ट आवंटित करता है और लौटाता है।
स्ट्रिंग कॉन्स्टेंट पूल (एससीपी) बनाम स्टैंडर्ड हीप:
रैम को संरक्षित करने के लिए, जेवीएम हीप मेमोरी में एक विशेष कैश का प्रबंधन करता है जिसे स्ट्रिंग कॉन्स्टेंट पूल (एससीपी):
कहा जाता है- लिटरल क्रिएशन (
स्ट्रिंग एस1 = "इंडिया";): जेवीएम एससीपी की जांच करता है। यदि"INDIA"पहले से मौजूद है, तो कोई नई मेमोरी आवंटित नहीं की जाती है;s1बस मौजूदा पूल किए गए उदाहरण का संदर्भ प्राप्त करता है। - कीवर्ड निर्माण (
String s2 = new String("INDIA");):newऑपरेटर SCP जांच को बायपास करता है और नियमित हीप मेमोरी में एक स्वतंत्र, विशिष्ट ऑब्जेक्ट को जबरन इंस्टेंट करता है।