Friday 15 February 2013

java - Best practice curiosity regarding String instantiation -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 13 उत्तर

    मैं कुछ सलाह पढ़ रहा था जावा में सर्वोत्तम प्रथाओं और मुझे निम्न विचार मिला जो मुझे उत्सुक बना

    इसके अलावा जब भी आप स्ट्रिंग ऑब्जेक्ट को इन्स्तांत करना चाहते हैं, कभी भी इसके कन्स्ट्रक्टर का प्रयोग न करें, लेकिन इसे सीधे सीधे इन्स्तायट करें

    उदाहरण के लिए:

      // धीमी गति से स्ट्रिंग धीमी = नई स्ट्रिंग ("फिर से एक और स्ट्रिंग ऑब्जेक्ट"); // तेज त्वरित स्ट्रिंग तेज = "फिर से एक और स्ट्रिंग ऑब्जेक्ट";   

    ऐसा क्यों है? क्या 'तेज' डिफ़ॉल्ट स्ट्रिंग कन्स्ट्रक्टर को कॉल नहीं करता?

    जब आप new < / Code> आपको एक नया स्ट्रिंग ऑब्जेक्ट मिलता है, लेकिन यदि आप स्ट्रिंग शब्दशः का उपयोग करते हैं:

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

    अगर आप ऐसा करते हैं:

      स्ट्रिंग a = "foo"; जावा में सभी संकलन-टाइम निरंतर स्ट्रिंग्स स्वचालित रूप से इस पद्धति का उपयोग करके बंद कर देती हैं। स्ट्रिंग बी = "एफू";   

    फिर ए == बी है सत्य !

    एक स्ट्रिंग बनाई होगी, यदि वह इंटर्न नहीं है। एक ऑब्जेक्ट पहली बार बनाया जाएगा, और इसे String constant pool नामक एक जगह में संग्रहीत किया जाएगा।

    लेकिन new का उपयोग करके जो प्रत्येक स्ट्रिंग के लिए एक अलग ऑब्जेक्ट पैदा करेगा, false आउटपुट होगा।

      स्ट्रिंग a = new string ("foo"); स्ट्रिंग बी = नया स्ट्रिंग ("फू");   

    अब a == b है झूठा

    तो जब शाब्दिक उपयोग करते हैं, तो इसे पढ़ने में आसान होता है, और अनुकूलक बनाने के लिए कंपाइलर के लिए आसान। इसलिए .. इसका उपयोग जब आप कर सकते हैं

No comments:

Post a Comment