Aproape toate limbajele de programare sunt legate cu null. Nu există aproape un programator care să nu fie tulburat de null. În Java null este asociat java.lang. NullPointerException . Deoarece este o clasă în pachetul java.lang, se numește atunci când încercăm să facem unele operații cu sau fără null și uneori nici măcar nu știm unde s-a întâmplat. Mai jos sunt câteva puncte importante despre null în java pe care fiecare programator Java ar trebui să le cunoască:
saira banu actor
- În Java, nulul este o valoare specială care reprezintă absența unei valori sau a unei referințe. Este folosit pentru a indica faptul că o variabilă sau un obiect nu are în prezent o valoare atribuită.
- Valoarea nulă nu este aceeași cu un șir gol sau cu o matrice goală. Un șir gol este un șir care nu conține caractere, în timp ce o matrice goală este o matrice care nu conține elemente.
- Limbajul de programare Java are un tip nul încorporat numit „null”, care este un subtip al tuturor tipurilor de referință. Cu toate acestea, nu poate fi folosit ca tip pentru o variabilă deoarece nu are nicio instanță și nu poate fi instanțiată.
- Este considerată cea mai bună practică să verificați valorile nule înainte de a efectua orice operațiuni asupra acestora pentru a evita riscul unei excepții NullPointerException (NPE). NPE este considerată una dintre cele mai comune excepții în Java și poate provoca comportament neașteptat sau blocări într-un program.
- În Java, null este, de asemenea, folosit pentru a indica faptul că o metodă nu returnează nicio valoare. Acesta este cunoscut ca tip de returnare „nulat”. O metodă void nu returnează nicio valoare și este utilizată de obicei pentru a efectua o acțiune, cum ar fi imprimarea pe consolă sau actualizarea unei baze de date.
- În plus, null poate fi folosit ca valoare implicită pentru parametrii opționali dintr-o metodă. Acest lucru permite apelarea unei metode fără a specifica o valoare pentru acel parametru, iar valoarea nulă va fi folosită în schimb.
- Nu este recomandat să utilizați null ca valoare pentru o variabilă sau un obiect care este destinat să dețină o valoare a unui tip de date primitiv, cum ar fi int sau double, deoarece va provoca o eroare la timp de compilare.
- Utilizarea lui null în Java poate fi o sursă de confuzie și erori subtile, așa că este important să fiți conștienți de comportamentul său și de cum să îl gestionați corect în codul dvs. pentru a preveni erorile.
1. null este sensibil la majuscule și minuscule: null este literal în Java și pentru că cuvintele cheie sunt caz sensibil în java nu putem scrie NULL sau 0 ca în limbajul C.
Java
public class Test { public static void main (String[] args) throws java.lang.Exception { // compile-time error : can't find symbol 'NULL' Object obj = NULL; //runs successfully Object obj1 = null; } }
Ieșire:
5: error: cannot find symbol
can't find symbol 'NULL'
^
variable NULL
class Test
1 error
2. Valoarea variabilei de referință: Orice variabilă de referință din Java are o valoare implicită nul .
Javapublic class Test { private static Object obj; public static void main(String args[]) { // it will print null; System.out.println("Value of object obj is : " + obj); } }
Ieșire:
Value of object obj is : null 3. Tip de nul: Spre deosebire de concepția greșită comună, null nu este obiect sau nici un tip. Este doar o valoare specială care poate fi atribuită oricărui tip de referință și puteți tasta cast null oricărui tip. Exemple:
// null can be assigned to String
String str = null;
// you can assign null to Integer also
Integer itr = null;
// null can also be assigned to Double
Double dbl = null;
// null can be type cast to String
String myStr = (String) null;
// it can also be type casted to Integer
Integer myItr = (Integer) null;
// yes it's possible no error
Double myDbl = (Double) null;
4. Autoboxing și unboxing: În timpul operațiunilor de auto-boxing și unboxing, compilatorul pur și simplu aruncă o eroare de excepție Nullpointer dacă o valoare nulă este atribuită tipului de date cu casete primitive.
Javapublic class Test { public static void main(String[] args) throws java.lang.Exception { // An integer can be null so this is fine Integer i = null; // Unboxing null to integer throws // NullpointerException int a = i; } }
Ieșire:
Exception in thread 'main' java.lang.NullPointerException
at Test.main(Test.java:6)
5. instanță de operator: Operatorul java instanceof este folosit pentru a testa dacă obiectul este o instanță de tipul specificat (clasă sau subclasă sau interfață). În timpul executării, rezultatul operatorului instanceof este adevărat dacă valoarea expresiei nu este nulă. Aceasta este o proprietate importantă a instanței de funcționare, care o face utilă pentru verificările de turnare a tipului.
Javapublic class Test { public static void main(String[] args) throws java.lang.Exception { Integer i = null; Integer j = 10; // prints false System.out.println(i instanceof Integer); // Compiles successfully System.out.println(j instanceof Integer); } }
Ieșire:
false
true
6. Metode statice vs non-statice: Nu putem apela o metodă non-statică pe o variabilă de referință cu valoare nulă, aceasta 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.
Javapublic class Test { public static void main(String args[]) { Test obj = null; obj.staticMethod(); obj.nonStaticMethod(); } private static void staticMethod() { // Can be called by null reference System.out.println( " static method can be called by null reference & quot;); } private void nonStaticMethod() { // Can not be called by null reference System.out.print(" Non - static method - "); System.out.println( " cannot be called by null reference & quot;); } }
Ieșire:
static method can be called by null referenceException in thread 'main'
java.lang.NullPointerException
at Test.main(Test.java:5)
7. == și != Comparația și nu egală cu operatori sunt permise cu nul în Java. Acest lucru poate fi util în verificarea nullului cu obiecte în java.
Javapublic class Test { public static void main(String args[]) { // return true; System.out.println(null == null); // return false; System.out.println(null != null); } }
Ieșire:
true
false
8 . „null” poate fi transmis ca argument în metoda:
Putem trece nulul ca argument în java și putem imprima același lucru. Tipul de date al argumentului ar trebui să fie Reference Type. Dar metoda de returnare poate fi orice tip ca void int double sau orice alt tip de referință, în funcție de logica programului.
Aici metoda „print_null” va tipări pur și simplu argumentul care este transmis de la metoda principală.
Javaimport java.io.*; class GFG { public static void print_null(String str) { System.out.println('Hey I am : ' + str); } public static void main(String[] args) { GFG.print_null(null); } }
Ieșire:
Hei, sunt: nul
9. Operatorul „+” pe null:
Putem concatena valoarea nulă cu variabile String în java. Este considerată o concatenare în java.
Aici nulul va fi concatenat doar cu variabila String. Dacă folosim operatorul „+” cu nul și orice alt tip (Integer Double etc.) altul decât String, va arunca un mesaj de eroare.
Întregul a=null+7 va arunca un mesaj de eroare ca „ tipuri de operanzi greșite pentru operatorul binar „+”
Javaimport java.io.*; class GFG { public static void main(String[] args) { String str1 = null; String str2 = '_value'; String output = str1 + str2; System.out.println('Concatenated value : ' + output); } }
Ieșire
Concatenated value : null_value