logo

Fatti su null in Java

Ogni linguaggio di programmazione, incluso Java, è limitato da null. Non esiste programmatore che non abbia riscontrato alcun problema nel codice relativo a null. I programmatori si trovano principalmente ad affrontare NullPointerException quando tentano di eseguire alcune operazioni con dati nulli. NullPointerException è una classe disponibile che appartiene al pacchetto java.lang.

Prima di comprendere i fatti di null, è necessaria la conoscenza delle variabili Java. Se non sai cosa Variabile Java è, vai al seguente link:

Ogni sviluppatore dovrebbe essere a conoscenza dei seguenti fatti relativi a null in Java:

Maiuscole e minuscole

In Java, non possiamo scrivere null come NULL o 0 come nella programmazione C perché null è un valore letterale e le parole chiave fanno distinzione tra maiuscole e minuscole in Java.

Facciamo un esempio per comprendere il comportamento con distinzione tra maiuscole e minuscole di null.

NullEsempio1.java

 // import classes and packages if any public class NullExample1 { // main() method start public static void main (String[] args) throws java.lang.Exception { // declare and initialize an object with NULL Object obj1 = NULL; // declare and initialize an object with null Object obj2 = null; // print both objects System.out.println('The value of obj1 is: '+obj1); System.out.println('The value of obj2 is: '+obj2); } } 

Produzione:

nucleo javajava
Fatti su null in Java

Valore della variabile di riferimento

Per impostazione predefinita, ogni variabile di riferimento ha un valore null in Java. Una variabile di riferimento viene utilizzata per indicare e memorizzare oggetti/valori di tipo riferimento in Java. Classi, array, enumerazioni e interfacce, ecc., sono alcuni tipi di riferimento in Java.

Pertanto, un tipo di riferimento memorizza un valore null se nessun oggetto viene passato a un tipo di riferimento.

lessicograficamente

Facciamo un esempio per capire come funziona una variabile di riferimento per valore nullo:

NullExample2.java

 // import classes and packages if any public class NullExample2 { // declare two objects private static Object obj1; private static Object obj2; // main() method start public static void main (String[] args) { // print both objects System.out.println('The value of obj1 is: '+obj1); System.out.println('The value of obj2 is: '+obj2); } } 

Produzione:

Fatti su null in Java

Tipo nullo

In Java, null non è né un oggetto né un tipo. È un valore speciale che possiamo assegnare a qualsiasi variabile di tipo riferimento. Possiamo lanciare null in qualsiasi tipo desideriamo, come string, int, double, ecc.

Facciamo un esempio per capire come possiamo assegnare valori null a qualsiasi tipo di riferimento.

NullExample3.java

 // import classes and packages if any public class NullExample3 { // main() method start public static void main (String[] args) { // pass a null value to a different type of variable // pass null to String String str = null; // pass null to Integer Integer itr = null; // pass null to Double Double dbl = null; // casting null to String String castedStr = (String)null; // casting null to Integer Integer castedItr = (Integer)null; // casting null to Double Double castedDbl = (Double)null; // print all reference type System.out.println('The value of str is: '+str); System.out.println('The value of itr is: '+itr); System.out.println('The value of dbl is: '+dbl); System.out.println('The value of castedStr is: '+castedStr); System.out.println('The value of castedItr is: '+castedItr); System.out.println('The value of castedDbl is: '+castedDbl); } } 

Produzione:

Fatti su null in Java

Autoboxing e Unboxing

Autoboxing E Spacchettamento sono le due operazioni più importanti che eseguiamo in Java. Il compilatore lancia NullPointerException quando assegniamo un valore nullo a qualsiasi tipo di dati boxed primitivo durante l'esecuzione delle operazioni.

Facciamo un esempio per comprendere l'autoboxing e il fatto di unboxing di null.

NullExample4.java

 // import classes and packages if any public class NullExample4 { // main() method start public static void main (String[] args) throws java.lang.Exception { // pass null value to a reference type Integer itr = null; // perform unboxing operation int data = itr; // print both objects System.out.println('The value of itr is: '+itr); System.out.println('The value of data is: '+data); } } 

Produzione:

carattere per stringa Java
Fatti su null in Java

L'istanza di Operator

Per verificare se un oggetto è un'istanza del tipo specificato o meno, utilizziamo il file istanza di operatore. IL istanza di L'operatore restituisce true quando il valore dell'espressione non è null in fase di esecuzione. Svolge un ruolo importante nei controlli di typecasting.

Facciamo un esempio per capire il istanza di operatore:

NullExample5.java

 // import classes and packages if any public class { // main() method start public static void main (String[] args) throws java.lang.Exception { // pass null value to a reference type Integer m = null; // pass a value to a reference type Integer n = 20; // print instanceof values System.out.println(m instanceof Integer); System.out.println(n instanceof Integer); } } 

Produzione:

Fatti su null in Java

Statico vs. Metodi non statici

Non possiamo chiamare un metodo non statico su una variabile di riferimento con un valore nullo. Se lo chiamiamo, lancerà NullPointerException, ma possiamo chiamare il metodo statico con variabili di riferimento con valori null. Poiché i metodi statici sono collegati utilizzando l'associazione statica, non genereranno un'eccezione del puntatore Null.

Facciamo un esempio per comprendere il fatto di null:

NullExample6.java

nucleo dell'errore di segmentazione scaricato
 // import classes and packages if any public class NullExample6 { // define static method public static void staticMethod() { //it can be called by using a null reference System.out.println('static method can be called by null reference.'); } // define non static method public void nonStaticMethod() { //it cannot be called by using a null reference System.out.println('static method cannot be called by a null reference.'); } // main() method start public static void main (String[] args) throws java.lang.Exception { NullExample6 exp = null; exp.staticMethod(); exp.nonStaticMethod(); } } 

Produzione:

Fatti su null in Java

== e != Operatori

In Java questi due operatori sono consentiti con null. Entrambi gli operatori sono utili per verificare null con oggetti in Java.

Facciamo un esempio per capire come funzionano questi due operatori con null.

NullExample7.java

 // import classes and packages if any public class NullExample7 { // main() method start public static void main (String[] args) { // pass null value to String type of variables // pass null to str1 String str1 = null; // pass null to str2 String str2 = null; // pass null to str3 String str3 = 'Test'; // compare strings if(str1 == str2){ System.out.println('str1 and str2 both are equal'); }else{ System.out.println('str1 and str2 are not equal'); } if(str2 == str3){ System.out.println('str2 and str3 both are equal'); }else{ System.out.println('str2 and str3 are not equal'); } if(str3 == str1){ System.out.println('str3 and str1 both are equal'); }else{ System.out.println('str3 and str1 are not equal'); } } } 

Produzione:

Fatti su null in Java

Ogni sviluppatore Java dovrebbe essere a conoscenza di tutti i fatti sopra discussi relativi a null.