Java मध्ये null चा अर्थ काय आहे हे समजून घेण्यासाठी , संख्यांशी साधर्म्य पाहू या: संख्या 0 एखाद्या गोष्टीच्या अनुपस्थितीचे प्रतीक आहे, आणि null चा अर्थ डेटा प्रकारांचा संदर्भ घेताना समान गोष्ट आहे. संदर्भ प्रकाराचे फील्ड (जसे की स्ट्रिंग , ऑब्जेक्ट , किंवा स्ट्रिंगबिल्डर ) स्पष्टपणे एखादे मूल्य नियुक्त केले नसल्यास, आदिम प्रकारांच्या सादृश्यतेने, त्याला डीफॉल्ट मूल्य प्राप्त होते आणि ते मूल्य शून्य असते :

कोड कन्सोल आउटपुट

public class Solution {

    public static int i;
    public static String s;

    public static void main(String[] args) {
        System.out.println(i);
        System.out.println(s);
    }
}
                    
0
शून्य

परंतु जर तुम्ही याप्रमाणे अॅरे घोषित केले तर:


String[] strings = new String[12];

12 घटकांसह एक अॅरे तयार केला जाईल आणि ते सर्व शून्य असतील :

कोड कन्सोल आउटपुट

public class Solution {
    public static void main(String[] args) {
        String[] strings = new String[12];

        for (int i = 0; i < strings.length; i++) {
            System.out.println("Element " + i + ":" + strings[i]);
        }
    }
}
                    
घटक 0: शून्य
घटक 1: शून्य
घटक 2: शून्य
घटक 3: शून्य
घटक 4: शून्य घटक
5: शून्य
घटक 6:
शून्य घटक 7:
शून्य घटक 8: शून्य
घटक 9: शून्य
घटक 10: शून्य
घटक 11: null

तुम्ही बघू शकता, जेव्हा स्ट्रिंगशी जोडले जाते तेव्हा व्हॅल्यू नल ही स्ट्रिंग " null " बनते. ते म्हणाले, जर तुम्ही त्यावर toString() पद्धत कॉल केली तर, याप्रमाणे:


String[] strings = null;
System.out.println(strings.toString());

मग तुम्हाला एक NullPointerException मिळेल (आम्ही अपवादांबद्दल नंतर तपशीलवार चर्चा करू). तुम्ही नल वर इतर कोणत्याही पद्धतीला कॉल करण्याचा प्रयत्न केल्यास तेच घडते (स्टॅटिक पद्धतींचा अपवाद आहे, ज्या तुम्हाला लवकरच कळतील):


public static void main(String[] args) {
    StringBuilder sb = null;
    sb.append("test"); // This will compile, but there will be a runtime error
}

null हा इतर गोष्टींबरोबरच राखीव कीवर्ड आहे (जसे की सार्वजनिक किंवा स्थिर ), त्यामुळे तुम्ही null नावाचे व्हेरिएबल, पद्धत किंवा वर्ग तयार करू शकत नाही . इतरांप्रमाणे, हा कीवर्ड केस-सेन्सेटिव्ह आहे (आपल्या लक्षात आले असेल की आम्ही सर्वत्र लोअरकेसमध्ये शून्य लिहितो). त्याचा अर्थ असा की:


String firstName = Null; // Compilation error

String secondName = NULL; // Compilation error

String fullName = null; // This will compile

null सह तुम्ही आणखी काय करू शकता आणि काय करू शकत नाही ते पाहू या :

  • तुम्ही कोणत्याही संदर्भासाठी शून्य नियुक्त करू शकता:

    
    StringBuilder sb = null;
                
  • null कोणत्याही संदर्भ प्रकारासाठी कास्ट केले जाऊ शकते:

    
    String s = (String) null; // This will compile, but doing this doesn't make any sense :)
                
  • null हे आदिम व्हेरिएबलला नियुक्त केले जाऊ शकत नाही:

    
    int i = null; // This won't compile
                
  • null ची तुलना == आणि != वापरून केली जाऊ शकते

  • null == null खरे मिळवते

मागील धड्यांमध्ये, आपण Java मधील प्रत्येक वस्तू कशाप्रकारे वस्तू आहे आणि प्रत्येक वस्तूचा एक प्रकार कसा आहे याबद्दल बोललो.

या संदर्भात आपण शून्याबद्दल काय म्हणू शकतो ? null हा एका विशिष्ट प्रकारचा शब्दशः आहे आणि या प्रकाराला कोणतेही नाव नाही. आणि या प्रकाराला कोणतेही नाव नसल्यामुळे, या प्रकाराचे व्हेरिएबल घोषित करणे किंवा त्यास कास्ट करणे अशक्य आहे. अशा प्रकारे, नल हा या अनामित प्रकाराचा एकमेव प्रतिनिधी आहे. व्यवहारात, आपण या प्रकाराकडे दुर्लक्ष करू शकतो, आणि null चा एक विशेष शब्दशः म्हणून विचार करू शकतो जो कोणत्याही संदर्भ चलना नियुक्त केला जाऊ शकतो.

लक्षात ठेवण्यासारख्या गोष्टी:

  • संदर्भ डेटा प्रकारांसाठी null हे डीफॉल्ट मूल्य आहे
  • शून्य म्हणजे "मूल्य नाही"
  • जर आपण एखाद्या ऑब्जेक्टवर कोणतीही पद्धत कॉल केली ज्याचे मूल्य null असेल तर कोड संकलित होईल परंतु रनटाइमच्या वेळी आपल्याला NullPointerException मिळेल .