10 चीजें प्रत्येक जावा प्रोग्रामर को इन्फोक&#

लगभग किसी भी प्रकार की परियोजना में जावा स्ट्रिंग के भारी उपयोग को देखते हुए, स्ट्रिंग के बारे में सूक्ष्म विवरण जानने के लिए यह और भी महत्वपूर्ण हो गया है। यद्यपि मैंने यहां जेवरेविसिट में पहले से ही स्ट्रिंग से संबंधित लेख साझा किया है, लेकिन यह स्ट्रिंग सुविधा को एक साथ लाने का प्रयास है। इस ट्यूटोरियल में हम जावा के बारे में कुछ महत्वपूर्ण बिंदु देखेंगे, जो याद रखने योग्य है। स्ट्रिंग के बारे में और जानने के लिए आप मेरे पहले पोस्ट 10 उन्नत जावा प्रश्नों को भी देख सकते हैं।

हालांकि मैंने बहुत सी चीजों को कवर करने की कोशिश की, लेकिन निश्चित रूप से कुछ चीजें हैं, जिन्हें मैं याद कर सकता हूं; अगर आपको java.lang.String कार्यक्षमता पर कोई प्रश्न या संदेह है तो कृपया मुझे बताएं और मैं उन्हें यहां संबोधित करने की कोशिश करूंगा।

1) जावा में तारों को समाप्त नहीं किया जाता है।

सी और सी ++ के विपरीत, जावा में शून्य चरित्र के साथ समाप्त नहीं होता है। इसके बजाए जावा में ऑब्जेक्ट है और चरित्र सरणी द्वारा समर्थित है। आप जावा में प्रतिनिधित्व करने के लिए प्रयुक्त वर्ण सरणी प्राप्त कर सकते हैं जो javaK के java.lang.String क्लास कीCharArray () विधि को कॉल करके।

2) स्ट्रिंग जावा में अपरिवर्तनीय और अंतिम हैं

स्ट्रिंग जावा में अपरिवर्तनीय हैं इसका मतलब है कि एक बार बनाया गया है कि आप स्ट्रिंग की सामग्री को संशोधित नहीं कर सकते हैं। यदि आप इसे LowerCase (), ToUpperCase () या किसी अन्य विधि का उपयोग करके संशोधित करते हैं, तो यह हमेशा नया होता है। चूंकि अंतिम है, कोई भी तरीका किसी भी कार्यक्षमता को बढ़ा या ओवरराइड नहीं कर सकता है। अब अगर आप परेशान हैं तो क्यों स्ट्रिंग जावा में अपरिवर्तनीय या अंतिम है। लिंक चेकआउट करें।

3) स्ट्रिंग पूल में तारों को बनाए रखा जाता है

जैसा कि मैंने पहले कहा था जावा में विशेष वर्ग और सभी शाब्दिक उदाहरण है "एबीसी" (जो भी डबल कोट्स के अंदर है, जावा में शाब्दिक हैं) एक अलग स्ट्रिंग पूल, जावा मेमोरी के अंदर विशेष मेमोरी लोकेशन, पर्मजेन स्पेस के अंदर अधिक सटीक रूप से बनाए रखा जाता है। जब भी आप शाब्दिक का उपयोग करके एक नया ऑब्जेक्ट बनाते हैं, तो जेवीएम पहले स्ट्रिंग पूल की जांच करता है और यदि समान सामग्री वाला कोई ऑब्जेक्ट उपलब्ध होता है, तो यह उस पर लौटाता है और एक नई वस्तु नहीं बनाता है। यदि आप नए ऑपरेटर का उपयोग कर ऑब्जेक्ट बनाते हैं तो JVM स्ट्रिंग पूल चेक नहीं करता है।

4) जावा में स्ट्रिंग की तुलना करने के लिए बराबर विधियों का उपयोग करें

स्ट्रिंग क्लास बराबर विधि को ओवरराइड करता है और सामग्री समानता प्रदान करता है, जो वर्णों, केस और ऑर्डर पर आधारित होता है। तो यदि आप दो ऑब्जेक्ट की तुलना करना चाहते हैं, यह जांचने के लिए कि वे समान हैं या नहीं, हमेशा समानता ऑपरेटर की बजाय बराबर () विधि का उपयोग करें। पहले उदाहरण की तरह यदि हम ऑब्जेक्ट्स की तुलना करने के लिए बराबर विधि का उपयोग करते हैं, तो वे एक-दूसरे के बराबर होंगे क्योंकि उनमें सभी समान सामग्री शामिल हैं।

5) स्ट्रिंग के अंदर खोजने के लिए indexOf () और lastIndexOf () या मैचों (स्ट्रिंग रेगेक्स) विधि का उपयोग करें

जावा में कक्षा यह देखने के लिए सुविधाजनक तरीका प्रदान करती है कि वर्तमान वस्तु में कोई वर्ण या उप-या पैटर्न मौजूद है या नहीं। आप indexOf () का उपयोग कर सकते हैं जो चरित्र की स्थिति वापस कर देगा या यदि वर्तमान ऑब्जेक्ट में मौजूद है या -1 यदि वर्ण मौजूद नहीं है। lastIndexOf समान है लेकिन यह अंत से खोज करता है। .match (regex) और भी शक्तिशाली है, जो आपको अंदर एक नियमित अभिव्यक्ति पैटर्न खोजने की अनुमति देता है।

6) जावा में भाग लेने के लिए उप का उपयोग करें

जावा उप () नामक एक और उपयोगी विधि प्रदान करता है, जिसका उपयोग भागों के लिए किया जा सकता है। मूल रूप से आप प्रारंभ और अंत अनुक्रमणिका निर्दिष्ट करते हैं और substring () विधि उस सीमा से चरित्र लौटाता है। सूचकांक 0 से शुरू होता है और जाता है 1. वैसे। लम्बाई () आपको स्ट्रिंग में वर्णों की संख्या देता है, जिसमें टैब, स्पेस जैसे सफेद रिक्त स्थान शामिल हैं। एक बिंदु जो यहां याद रखने योग्य है वह यह है कि सब को चरित्र सरणी द्वारा भी समर्थित किया जाता है, जिसका उपयोग मूल रूप से किया जाता है। यह खतरनाक हो सकता है यदि मूल वस्तु बहुत बड़ी है और बहुत छोटी है, क्योंकि यहां तक कि एक छोटा सा अंश भी पूर्ण सरणी का संदर्भ रख सकता है और इसे उस कचरे से बचाता है, भले ही उस विशेष के लिए कोई अन्य संदर्भ न हो।

7) स्ट्रिंग concatenation के लिए "+" अधिभारित है

जावा ऑपरेटर ओवरलोडिंग का समर्थन नहीं करता है लेकिन विशेष है और + ऑपरेटर का उपयोग दो को जोड़ने के लिए किया जा सकता है। यह int, char, long या double को कन्वर्ट करने के लिए भी आसानी से कन्वर्ट करने के लिए उपयोग किया जा सकता है "। आंतरिक रूप से + जावा 5 से पहले स्ट्रिंगबफर का उपयोग करके और जावा 5 से स्ट्रिंगबिल्डर का उपयोग करके कार्यान्वित किया जाता है। यह स्ट्रिंगबफर या स्ट्रिंगबिल्डर का उपयोग करने के बिंदु को भी लाता है छेड़छाड़ करना

8) सफेद रिक्त स्थान को हटाने के लिए ट्रिम () का उपयोग करें

जावा दोनों तरफ से सफेद स्थान को हटाने के लिए ट्रिम () विधि प्रदान करता है। यदि ट्रिम () सफेद रिक्त स्थान हटा देता है तो यह एक नया लौटाता है अन्यथा यह वही होता है। ट्रिम () के साथ-साथ वर्णों को बदलने के लिए प्रतिस्थापन () और replaceAll () विधि भी प्रदान करता है। प्रतिस्थापित करें सभी विधि नियमित अभिव्यक्ति का भी समर्थन करते हैं।

9) नियमित अभिव्यक्ति का उपयोग करके विभाजन के लिए विभाजन () का उपयोग करें

जावा समृद्ध सुविधा है। इसमें विभाजन (रेगेक्स) जैसी विधियां हैं जो नियमित अभिव्यक्ति के रूप में किसी भी को ले सकती हैं और उस पर आधारित विभाजित हो सकती हैं। विशेष रूप से उपयोगी अगर आप अल्पविराम से अलग फ़ाइल (सीएसवी) से निपटते हैं और एक सरणी में व्यक्तिगत हिस्सा रखना चाहते हैं।

10) संवेदनशील डेटा स्टोर न करें

यदि पासवर्ड, एसएसएन या किसी अन्य संवेदनशील जानकारी जैसे संवेदनशील डेटा संग्रहीत करने के लिए उपयोग किया जाता है तो सुरक्षा खतरे को रोकें। चूंकि जावा में अपरिवर्तनीय है, इसलिए कोई भी तरीका नहीं है कि आप सामग्री को मिटा सकते हैं और चूंकि उन्हें पूल में रखा जाता है (स्ट्रिंग शाब्दिक के मामले में) वे जावा ढेर पर लंबे समय तक रहते हैं, जो जावा मेमोरी तक पहुंचने वाले किसी भी व्यक्ति द्वारा देखा जा रहा जोखिम का खुलासा करता है, मेमोरी डंप से पढ़ने की तरह।