जावा मधील स्ट्रिंग आणि स्ट्रिंगबफर क्लास मधील फरक
सामग्री
स्ट्रिंग आणि स्ट्रिंगबफर हे दोन्ही स्ट्रिंगवर चालणारे वर्ग आहेत. स्ट्रिंगबफर क्लास स्ट्रिंगचा पीअर क्लास आहे. स्ट्रिंग क्लासचे ऑब्जेक्ट निश्चित लांबीचे असते. स्ट्रिंगबफर वर्गाचा ऑब्जेक्ट वाढण्यायोग्य आहे. स्ट्रिंग आणि स्ट्रिंगबफरमधील मूलभूत फरक म्हणजे “स्ट्रिंग” क्लासचा ऑब्जेक्ट आहे अचल. "स्ट्रिंगबफर" वर्गातील ऑब्जेक्ट परिवर्तनीय.
- तुलना चार्ट
- व्याख्या
- मुख्य फरक
- निष्कर्ष
तुलना चार्ट
तुलनासाठी आधार | स्ट्रिंग | स्ट्रिंगबफर |
---|---|---|
मूलभूत | स्ट्रिंग ऑब्जेक्टची लांबी निश्चित केली आहे. | स्ट्रिंगबफरची लांबी वाढवता येते. |
बदल | स्ट्रिंग ऑब्जेक्ट अचल आहे. | स्ट्रिंगबफर ऑब्जेक्ट बदलण्यायोग्य आहे. |
कामगिरी | कॉन्टेन्टेशन दरम्यान हे कमी होते. | कॉन्टेन्टेशन दरम्यान ते वेगवान आहे. |
मेमरी | जास्त मेमरी घेते. | कमी मेमरी घेते. |
साठवण | स्ट्रिंग सतत पूल. | ढीग मेमरी. |
स्ट्रिंग व्याख्या
जावा मधील “स्ट्रिंग” हा एक वर्ग आहे. स्ट्रिंग क्लासची ऑब्जेक्ट निश्चित लांबीची असते आणि सर्वात महत्त्वाची गोष्ट म्हणजे स्ट्रिंग क्लासचे ऑब्जेक्ट “अपरिवर्तनीय” आहे. एकदा आपण स्ट्रिंग ऑब्जेक्ट प्रारंभ केल्यास आपण पुन्हा त्या ऑब्जेक्टमध्ये सुधारणा करू शकत नाही. स्ट्रिंग क्लासचा ऑब्जेक्ट स्ट्रिंग कॉन्स्टेंट पूलमध्ये संग्रहित आहे.
आपण जेव्हा एखादी स्ट्रिंग तयार करता तेव्हा आम्हाला प्रथम ते समजून घ्या; आपण टाइप स्ट्रिंगचा ऑब्जेक्ट तयार करा. स्ट्रिंग कॉन्स्टन्ट्स देखील स्ट्रिंग ऑब्जेक्ट असतात.
सिस्टम.आउट.लएन ("नमस्कार हे टेकपिक्स सोल्यूशन आहे");
वरील विधानात, “हॅलो इज टेकपिक्स सोल्यूशन” ही स्ट्रिंग स्ट्रिंग आहे.
आता उदाहरणाच्या मदतीने स्ट्रिंग ऑब्जेक्टचे परिवर्तनीयता समजून घेऊ.
स्ट्रिंग स्ट्र = नवीन स्ट्रिंग ("टेकपिक्स"); str.concat ("समाधान"); system.out.ln (str); // आउटपुट टेकपिक्स
वरील कोडमध्ये, मी “टेकपिक्स” आणि “सोल्यूशन” या दोन तारांना एकत्र करण्याचा प्रयत्न केला. जेव्हा आपल्याला माहित आहे की जेव्हा जेव्हा स्ट्रिंग तयार केली जाते म्हणजे स्ट्रिंगचा ऑब्जेक्ट तयार होतो. म्हणूनच “Teckpix” स्ट्रिंग एक ऑब्जेक्ट तयार करते, ज्याचा संदर्भ स्ट्रिंग ऑब्जेक्ट “str” ला दिलेला आहे. पुढे, मी स्ट्रिंगच्या वर्गात "कॉंकॅट ()" या पध्दतीचा वापर करुन "टेकपिक्स" या स्ट्रिंगसह "सॉल्यूशन" ही दुसरी स्ट्रिंग एकत्रित करण्याचा प्रयत्न केला.
स्ट्रिंग ऑब्जेक्ट्स बदलण्यायोग्य नसल्यामुळे, “टेकपिक्स” या स्ट्रिंगमध्ये कोणतीही बदल करण्यात आलेला नाही आणि नवीन स्ट्रिंग “सोल्यूशन” स्ट्रिंग कॉन्स्टिस्ट पूलमध्ये एखादे ऑब्जेक्ट तयार करते. परंतु, "सोल्यूशन" या ऑब्जेक्टचा संदर्भ कोणत्याही ऑब्जेक्टने पकडलेला नाही म्हणून ऑब्जेक्ट सोल्यूशनचा संदर्भ गमावला गेला तरी तो स्ट्रिंग स्थिर तलावामध्ये अजूनही आहे. टेकपिक्स या ऑब्जेक्टमध्ये कोणतीही बदल करण्यात आलेला नाही, जेव्हा मी यापूर्वी ऑब्जेक्टला टेक्पिक्सचा संदर्भ दिलेला ऑब्जेक्ट असेल तेव्हा फक्त “टेकपिक्स” ही स्ट्रिंग येईल.
स्ट्रिंगबफर ची व्याख्या
“स्ट्रिंगबफर” हा वर्ग “स्ट्रिंग” हा पीअर क्लास आहे. स्ट्रिंगबफर वर्ग तारांना अधिक कार्यक्षमता प्रदान करतो. स्ट्रिंगबफर वर्गाचे ऑब्जेक्ट बदलण्यायोग्य आहे की त्याचे ऑब्जेक्ट सुधारित केले जाऊ शकते. स्ट्रिंगबफर ऑब्जेक्टची लांबी वाढण्यायोग्य आहे. आपण स्ट्रिंगबफर ऑब्जेक्टला किंवा त्याच्या शेवटी नियुक्त केलेल्या अक्षरांच्या मध्यभागी अक्षरे किंवा उपस्ट्रिंग्ज समाविष्ट करू शकता. जेव्हा विशिष्ट लांबीची विनंती केली जात नाही तेव्हा स्ट्रिंगबफर 16 अतिरिक्त वर्णांसाठी जागा वाटप करते.
आम्हाला उदाहरणाच्या मदतीने स्ट्रिंगबफर ऑब्जेक्टची परिवर्तनीयता समजू:
स्ट्रिंगबफर एसबी = नवीन स्ट्रिंगबफर ("टेकपिक्स"); एसबी.एपेंड ("समाधान"); system.out.ln (एसबी); // आउटपुट टेकपिक्स सोल्यूशन
जसे आपल्याला माहित आहे की स्ट्रिंगबफर ऑब्जेक्ट बदलण्यायोग्य आहे. मेथड अपेंड () स्ट्रिंगबफर ऑब्जेक्ट एसबी मध्ये बदल करते ज्यास सुरुवातीला ऑब्जेक्ट “टेकपिक्स” चा संदर्भ आधी दिलेला होता. मेथड अॅपेंड () नवीन स्ट्रिंग लिटरल “सोल्यूशन” ला जोडते, अक्षरांच्या शेवटच्या टेकपिक्सच्या शेवटी. आता जेव्हा मला ऑब्जेक्ट ऑब्जेक्ट होईल तेव्हा ते सुधारित स्ट्रिंग ऑब्जेक्ट “टेकपिक्स सोल्यूशन्स” करेल.
- स्ट्रिंग ऑब्जेक्टची लांबी निश्चित केली जाते परंतु आवश्यक असल्यास स्ट्रिंगबफरच्या ऑब्जेक्टची लांबी वाढवता येते.
- स्ट्रिंग ऑब्जेक्ट बदलण्यायोग्य आहे म्हणजेच त्यास पुन्हा वस्तू नियुक्त करणे शक्य नाही, तर स्ट्रिंगबफरचे ऑब्जेक्ट बदलण्यायोग्य आहे.
- स्ट्रिंग ऑब्जेक्ट कार्यक्षमतेत हळू आहे, तर स्ट्रिंगबफर ऑब्जेक्ट वेगवान आहे.
- स्ट्रिंग ऑब्जेक्ट अधिक मेमरी वापरते तर स्ट्रिंगबफर ऑब्जेक्ट्स कमी मेमरी वापरतात.
- स्ट्रिंग ऑब्जेक्ट्स स्थिर पूलमध्ये साठवले जातात तर स्ट्रिंगबफर ऑब्जेक्ट्स हीप मेमरीवर ठेवल्या जातात.
निष्कर्ष:
स्ट्रिंगबफर ऑब्जेक्ट्स स्ट्रिंगला क्लास स्ट्रिंगच्या तुलनेत अधिक कार्यक्षमता प्रदान करतात. म्हणून, वर्ग स्ट्रिंगऐवजी स्ट्रिंगबफरसह कार्य करणे श्रेयस्कर आहे.