"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा में नल स्ट्रिंग्स को संयोजित करने से NullPointerException क्यों नहीं आती?

जावा में नल स्ट्रिंग्स को संयोजित करने से NullPointerException क्यों नहीं आती?

2024-11-17 को प्रकाशित
ब्राउज़ करें:239

Why Doesn\'t Concatenating Null Strings in Java Throw a NullPointerException?

जावा में नल स्ट्रिंग्स को जोड़ना

जावा में, नल स्ट्रिंग्स को जोड़ना उल्टा लग सकता है, जिससे NullPointerException की उम्मीद हो सकती है। हालाँकि, यह ऑपरेशन सफलतापूर्वक निष्पादित होता है, जिसके परिणामस्वरूप एक स्ट्रिंग आती है जिसमें "शून्य" होता है जिसके बाद संयोजित स्ट्रिंग होती है।

यह काम क्यों करता है?

जावा भाषा विशिष्टता के अनुसार (जेएलएस) 8, § 15.18.1, स्ट्रिंग संयोजन के दौरान शून्य संदर्भ स्पष्ट रूप से स्ट्रिंग "शून्य" में परिवर्तित हो जाते हैं। यह रूपांतरण किसी भी विधि आह्वान से पहले होता है, यह सुनिश्चित करते हुए कि NullPointerExceptions को फेंक नहीं दिया जाता है। विधि कॉल. s = s "हैलो" के मामले में, कंपाइलर इसके समान कोड उत्पन्न करता है:

s = new StringBuilder(String.valueOf(s)).append("hello").toString();स्ट्रिंगबिल्डर की एपेंड विधि अशक्त तर्कों को खूबसूरती से संभालती है। यदि शून्य पहला तर्क है, तो इसे एक स्ट्रिंग में बदलने के लिए String.valueOf() को लागू किया जाता है। new StringBuilder("hello").append(s).toString();

इस मामले में, एपेंड विधि दूसरे तर्क के रूप में शून्य लेती है और इसे प्रतिनिधि बनाती है to String.valueOf().

s = new StringBuilder(String.valueOf(s)).append("hello").toString();
नोट:

जावा कंपाइलर स्ट्रिंगबिल्डर पूलिंग जैसी तकनीकों का उपयोग करके प्रदर्शन को बेहतर बनाने के लिए स्ट्रिंग कॉन्सटेनेशन को अलग तरीके से अनुकूलित कर सकते हैं। इसलिए, उत्पन्न सटीक समतुल्य कोड उपयोग किए गए कंपाइलर के आधार पर भिन्न हो सकता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3