Fiecare limbaj de programare, inclusiv Java, este mărginit cu nul. Nu există niciun programator care să nu se confrunte cu nicio problemă în codul legat de null. Programatorii se confruntă în principal NullPointerException când încearcă să efectueze unele operații cu date nule. NullPointerException este o clasă disponibilă care aparține pachetului java.lang.
Înainte de a înțelege faptele null, este necesar să aveți cunoștințe despre variabilele Java. Dacă nu știi ce variabilă Java este, accesați următorul link:
Fiecare dezvoltator ar trebui să aibă cunoștințe despre următoarele fapte despre null în Java:
Caz sensibil
În Java, nu putem scrie null ca NULL sau 0 ca în programarea C, deoarece null este un literal și cuvintele cheie sunt sensibile la majuscule și minuscule în Java.
Să luăm un exemplu pentru a înțelege comportamentul null care ține cont de majuscule și minuscule.
NullExample1.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); } }
Ieșire:
Valoarea variabilei de referință
În mod implicit, fiecare variabilă de referință are o valoare nulă în Java. O variabilă de referință este utilizată pentru a indica și stoca obiecte/valori de tip referință în Java. Clasele, matricele, enumerările și interfețele etc. sunt câteva tipuri de referință în Java.
Deci, un tip de referință stochează o valoare nulă dacă niciun obiect nu este transmis unui tip de referință.
funcția python chr
Să luăm un exemplu pentru a înțelege cum funcționează o variabilă de referință pentru valoarea nulă:
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); } }
Ieșire:
Tip nul
În Java, null nu este nici un obiect, nici un tip. Este o valoare specială pe care o putem atribui oricărei variabile de tip referință. Putem arunca null în orice tip în care dorim, cum ar fi string, int, double etc.
Să luăm un exemplu pentru a înțelege cum putem atribui valori nule oricărui tip de referință.
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); } }
Ieșire:
Autoboxing și Unboxing
Autoboxing și Unboxing sunt cele mai importante două operațiuni pe care le efectuăm în Java. Compilatorul aruncă NullPointerException când atribuim o valoare nulă oricărui tip de date cu casete primitive în timpul efectuării operațiilor.
Să luăm un exemplu pentru a înțelege autoboxing-ul și faptul de unboxing 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); } }
Ieșire:
Instanța Operatorului
Pentru a verifica dacă an obiect este o instanță de tipul specificat sau nu, folosim instanță de operator. The instanță de operator returnează true atunci când valoarea expresiei nu este nulă în timpul rulării. Joacă un rol important în verificările de tipar.
Să luăm un exemplu pentru a înțelege instanță de operator:
arp o comandă
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); } }
Ieșire:
Static vs. Metode non-statice
Nu putem apela o metodă non-statică pe o variabilă de referință cu o valoare nulă. Dacă o numim, va arunca NullPointerException, dar putem apela metoda statică cu variabile de referință cu valori nule. Deoarece, metodele statice sunt legate folosind legarea statică, ele nu vor arunca excepția indicatorului nul.
Să luăm un exemplu pentru a înțelege faptul că nul:
NullExample6.java
// 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(); } }
Ieșire:
== și != Operatori
În Java, acești doi operatori sunt permisi cu null. Ambii operatori sunt utili în verificarea null cu obiecte în Java.
Să luăm un exemplu pentru a înțelege cum funcționează acești doi operatori cu null.
blocați reclamele youtube pe Android
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'); } } }
Ieșire:
Fiecare dezvoltator Java ar trebui să cunoască toate faptele discutate mai sus despre null.