मुख्य अंतर - जावा में स्ट्रिंग बनाम स्ट्रिंगबफ़र बनाम स्ट्रिंगबिल्डर
स्ट्रिंग, स्ट्रिंगबफर और स्ट्रिंग बिल्डर जावा में कक्षाएं हैं। जावा प्रोग्रामिंग में स्ट्रिंग का व्यापक रूप से उपयोग किया जाता है। एक बार स्ट्रिंग का ऑब्जेक्ट बन जाने के बाद, उन्हें बदलना संभव नहीं है। हर बार जब स्ट्रिंग में कोई परिवर्तन होता है, तो यह एक नया स्ट्रिंग बनाता है। भले ही यह मौजूदा स्ट्रिंग का एक संयोजन है, यह एक नई स्ट्रिंग बनाता है। यह स्मृति अपव्यय का कारण बनता है। जावा में स्ट्रिंगबफर और स्ट्रिंगबिल्डर कक्षाओं का उपयोग स्ट्रिंग को संशोधित करने के लिए किया जाता है। जावा में स्ट्रिंग, स्ट्रिंगबफ़र और स्ट्रिंगबिल्डर के बीच महत्वपूर्ण अंतर यह है कि स्ट्रिंग एक प्रकार की वस्तु बनाने के लिए एक वर्ग है जो वर्णों का एक क्रम है, स्ट्रिंगबफ़र एक ऐसा वर्ग है जिसका उपयोग स्ट्रिंग्स को संशोधित करने के लिए किया जाता है जो थ्रेड सुरक्षा प्रदान करता है, और स्ट्रिंगबिल्डर एक है क्लास का उपयोग स्ट्रिंग्स को संशोधित करने के लिए किया जाता है जो थ्रेड सुरक्षा प्रदान नहीं करते हैं।
जावा में स्ट्रिंग क्या है?
स्ट्रिंग क्लास java.lang पैकेज में है। हर बार जब प्रोग्रामर एक स्ट्रिंग बनाता है, तो यह स्ट्रिंग प्रकार का एक ऑब्जेक्ट होता है। स्ट्रिंग्स अपरिवर्तनीय हैं जिसका अर्थ है कि एक बार वस्तु बन जाने के बाद, इसे बदला नहीं जा सकता है। रैपर वर्गों जैसे इंटीजर, बाइट, फ्लोट, डबल का उपयोग करके बनाई गई वस्तुएं भी अपरिवर्तनीय हैं। एक स्ट्रिंग शाब्दिक दोहरे उद्धरण चिह्नों में संलग्न है। जैसे "नमस्ते दुनिया"। हर बार एक स्ट्रिंग शाब्दिक बनाया जाता है, जावा वर्चुअल मशीन (JVM) स्ट्रिंग स्थिर पूल की जाँच करता है। यदि स्ट्रिंग मौजूद है, तो स्ट्रिंग निरंतर पूल का संदर्भ दिया जाता है। यदि यह एक नया स्ट्रिंग है, तो वह वस्तु स्ट्रिंग स्थिर पूल में बनाई जाती है।
चित्र 01: स्ट्रिंग, स्ट्रिंगबफर और स्ट्रिंगबिल्डर का उपयोग कर जावा प्रोग्राम
नीचे दिए गए कोड को देखें।
स्ट्रिंग s1="नमस्ते";
s1=s1 + "विश्व";
System.out.println(s1);
पहले कथन में, s1 स्ट्रिंग निरंतर पूल में "हैलो" की बात कर रहा है। दूसरे कथन में, JVM मौजूदा स्ट्रिंग को नहीं बदलता है। इसके बजाय, यह "हैलो वर्ल्ड" के रूप में एक नया स्ट्रिंग बनाता है और s1 अब उस नए स्ट्रिंग की बात कर रहा है। बाहर निकलने वाली "हैलो" वस्तु अभी भी स्ट्रिंग स्थिर पूल में मौजूद है।
अगर कोई कोड है जो है, स्ट्रिंग s1="नमस्ते";
स्ट्रिंग s2=s1;
s1, s2 दोनों स्ट्रिंग ऑब्जेक्ट "हैलो" को संदर्भित करेंगे।
जावा में स्ट्रिंगबफर क्या है?
स्ट्रिंगबफर क्लास का उपयोग स्ट्रिंग ऑब्जेक्ट्स को म्यूटेबल बनाने के लिए किया जाता है। इसलिए, उन वस्तुओं को संशोधित किया जा सकता है। StringBuffer चार कंस्ट्रक्टर्स को परिभाषित करता है। StringBuffer (), StringBuffer (int size), StringBuffer (स्ट्रिंग str), StringBuffer (charSequence ch)
नीचे दिए गए कोड को देखें, स्ट्रिंगबफ़र s1=नया स्ट्रिंगबफ़र ("हैलो");
s1.append("विश्व");
System.out.println(s1);
कथन 1 में, s1 ढेर में "हैलो" ऑब्जेक्ट का जिक्र कर रहा है। ऑब्जेक्ट परिवर्तनशील है क्योंकि इसे StringBuffer का उपयोग करके बनाया गया है। कथन 2 में, "विश्व" को उसी "हैलो" स्ट्रिंग ऑब्जेक्ट से जोड़ा गया है।
स्ट्रिंगबफर वर्ग के साथ बनाए गए स्ट्रिंग ऑब्जेक्ट मेमोरी को बचा सकते हैं। StringBuffer थ्रेड सुरक्षा प्रदान करता है क्योंकि दो थ्रेड StringBuffer वर्ग में एक ही विधि को एक साथ एक्सेस नहीं कर सकते हैं। थ्रेड सुरक्षा स्ट्रिंगबफर प्रदर्शन को कम करती है। StringBuffer वर्ग में एपेंड (), इन्सर्ट (), रिवर्स (), रिप्लेस () जैसी विधियाँ हैं।
जावा में स्ट्रिंगबिल्डर क्या है?
स्ट्रिंगबिल्डर क्लास का उपयोग स्ट्रिंग ऑब्जेक्ट्स को म्यूटेबल बनाने के लिए किया जाता है। इसलिए, उन वस्तुओं को संशोधित किया जा सकता है। कार्यक्षमता StringBuffer के समान है, लेकिन यह थ्रेड सुरक्षा प्रदान नहीं करती है।StringBuilder में StringBuilder (), StringBuilder (int size), StringBuilder (String str) जैसे कंस्ट्रक्टर हैं।
नीचे दिए गए कोड को देखें।
स्ट्रिंगबिल्डर s1=नया स्ट्रिंगबिल्डर ("हैलो");
s1.append("विश्व");
System.out.println(s1);
कथन 1 में, s1 ढेर में "हैलो" ऑब्जेक्ट का जिक्र कर रहा है। ऑब्जेक्ट परिवर्तनशील है क्योंकि इसे StringBuilder का उपयोग करके बनाया गया है। कथन 2 में, "विश्व" को उसी "हैलो" स्ट्रिंग ऑब्जेक्ट से जोड़ा गया है। पूरी तरह से नई स्ट्रिंग ऑब्जेक्ट का निर्माण नहीं हुआ है।
स्ट्रिंगबिल्डर वर्ग के साथ बनाए गए स्ट्रिंग ऑब्जेक्ट मेमोरी को बचा सकते हैं। StringBuffer के विपरीत, StringBuilder थ्रेड सुरक्षा प्रदान नहीं करता है क्योंकि दो थ्रेड StringBuilder वर्ग में एक साथ एक ही विधि का उपयोग कर सकते हैं। StringBuilder वर्ग में एपेंड (), इन्सर्ट (), रिवर्स (), रिप्लेस () जैसी विधियाँ हैं।
जावा में स्ट्रिंग, स्ट्रिंगबफर और स्ट्रिंगबिल्डर के बीच समानता क्या है?
स्ट्रिंग्स बनाने के लिए सभी का उपयोग किया जा सकता है।
जावा में String StringBuffer और StringBuilder में क्या अंतर है?
स्ट्रिंग बनाम स्ट्रिंगबफ़र बनाम स्ट्रिंगबिल्डर |
|
स्ट्रिंग | स्ट्रिंग एक जावा क्लास है जिसका उपयोग स्ट्रिंग प्रकार का ऑब्जेक्ट बनाने के लिए किया जाता है, जो कि वर्णों का एक क्रम है। |
स्ट्रिंगबफर | स्ट्रिंगबफर एक जावा वर्ग है जिसका उपयोग स्ट्रिंग ऑब्जेक्ट बनाने के लिए किया जाता है, जिसे थ्रेड सुरक्षा के साथ संशोधित किया जा सकता है। |
स्ट्रिंगबिल्डर | StringBuilder एक वर्ग है जिसका उपयोग स्ट्रिंग ऑब्जेक्ट बनाने के लिए किया जाता है, जिसे थ्रेड सुरक्षा के बिना संशोधित किया जा सकता है। |
परिवर्तनशीलता | |
स्ट्रिंग | स्ट्रिंग एक अपरिवर्तनीय वर्ग है। |
स्ट्रिंगबफर | स्ट्रिंगबफर एक परिवर्तनशील वर्ग है। |
स्ट्रिंगबिल्डर | स्ट्रिंगबिल्डर एक परिवर्तनशील वर्ग है। |
धागा सुरक्षा | |
स्ट्रिंग | स्ट्रिंग के तरीके थ्रेड सुरक्षित हैं। |
स्ट्रिंगबफर | स्ट्रिंगबफर के तरीके थ्रेड-सुरक्षित और सिंक्रनाइज़ हैं। |
स्ट्रिंगबिल्डर | स्ट्रिंगबिल्डर के तरीके थ्रेडेड सुरक्षित नहीं हैं और सिंक्रनाइज़ नहीं हैं। |
प्रदर्शन | |
स्ट्रिंग | स्ट्रिंग तेज है। |
स्ट्रिंगबफर | स्ट्रिंगबफर धीमा है। |
स्ट्रिंगबिल्डर | स्ट्रिंगबिल्डर तेज है। |
सारांश - जावा में स्ट्रिंग बनाम स्ट्रिंगबफ़र बनाम स्ट्रिंगबिल्डर
स्ट्रिंग, स्ट्रिंगबफर और स्ट्रिंगबिल्डर एक जैसे प्रतीत होते हैं, लेकिन उनके अलग-अलग अर्थ हैं। ये सभी जावा क्लासेस हैं। जावा में स्ट्रिंग, स्ट्रिंगबफ़र और स्ट्रिंगबिल्डर के बीच का अंतर यह है कि, स्ट्रिंग प्रकार की वस्तु बनाने के लिए स्ट्रिंग है, जो वर्णों का एक सेट है, स्ट्रिंगबफ़र एक ऐसा वर्ग है जिसका उपयोग स्ट्रिंग्स को संशोधित करने और थ्रेड सुरक्षा प्रदान करने के लिए किया जाता है, जबकि स्ट्रिंगबिल्डर एक है वह वर्ग जिसका उपयोग स्ट्रिंग्स को संशोधित करने के लिए किया जाता है जो थ्रेड सुरक्षा प्रदान नहीं करता है।
जावा में पीडीएफ स्ट्रिंग बनाम स्ट्रिंगबफर बनाम स्ट्रिंगबिल्डर डाउनलोड करें
आप इस लेख का पीडीएफ संस्करण डाउनलोड कर सकते हैं और उद्धरण नोट के अनुसार इसे ऑफ़लाइन उद्देश्यों के लिए उपयोग कर सकते हैं। कृपया पीडीएफ संस्करण यहां डाउनलोड करें जावा में स्ट्रिंग स्ट्रिंगबफर और स्ट्रिंगबिल्डर के बीच अंतर