Szinte az összes programozási nyelv null-hoz van kötve. Alig van olyan programozó, akit ne zavarna a null. Java-ban a null a java.langhoz kapcsolódik. NullPointerException . Mivel ez egy osztály a java.lang csomagban, akkor hívják, amikor néhány műveletet nullával vagy anélkül próbálunk végrehajtani, és néha azt sem tudjuk, hol történt. Az alábbiakban felsorolunk néhány fontos pontot a java nulláról, amelyeket minden Java programozónak tudnia kell:
f-string python
- Java-ban a null egy speciális érték, amely az érték vagy hivatkozás hiányát jelzi. Azt jelzi, hogy egy változóhoz vagy objektumhoz jelenleg nincs érték hozzárendelve.
- A null érték nem ugyanaz, mint egy üres karakterlánc vagy egy üres tömb. Az üres karakterlánc olyan karakterlánc, amely nem tartalmaz karaktereket, míg az üres tömb olyan tömb, amely nem tartalmaz elemeket.
- A Java programozási nyelvnek van egy beépített null típusa, az úgynevezett „null”, amely az összes referenciatípus altípusa. Azonban nem használható egy változó típusaként, mert nincs példánya, és nem példányosítható.
- A NullPointerException (NPE) kockázatának elkerülése érdekében bevált gyakorlatnak tekintjük a null értékek ellenőrzését, mielőtt bármilyen műveletet végrehajtana rajtuk. Az NPE a Java egyik leggyakoribb kivétele, és váratlan viselkedést vagy összeomlást okozhat a programban.
- Java-ban a null értéket is használják annak jelzésére, hogy a metódus nem ad vissza értéket. Ezt „üres” visszatérési típusnak nevezik. A void metódus nem ad vissza értéket, és általában olyan műveletek végrehajtására szolgál, mint a konzolra való nyomtatás vagy az adatbázis frissítése.
- Ezenkívül a null alapértelmezett értékként használható a metódus választható paramétereihez. Ez lehetővé teszi egy metódus meghívását anélkül, hogy megadnánk az adott paraméterhez tartozó értéket, és helyette a null értéket kell használni.
- Nem ajánlott null értéket használni olyan változókhoz vagy objektumokhoz, amelyek primitív adattípusok (például int vagy double) értékét tartalmazzák, mert ez fordítási hibát okoz.
- A null használata a Java-ban zavart és finom hibákat okozhat, ezért fontos tisztában lenni a viselkedésével és azzal, hogyan kell megfelelően kezelni a kódban a hibák elkerülése érdekében.
1. null a kis- és nagybetűk megkülönböztetése: A null szó szerint szerepel a Java nyelvben, és mivel a kulcsszavak igen kis- és nagybetűk megkülönböztetése java-ban nem írhatunk NULL-t vagy 0-t, mint a C nyelvben.
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; } }
Kimenet:
5: error: cannot find symbol
can't find symbol 'NULL'
^
variable NULL
class Test
1 error
2. Referenciaváltozó értéke: A Java bármely referenciaváltozójának alapértelmezett értéke van null .
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); } }
Kimenet:
Value of object obj is : null 3. Null típusa: Az általános tévhittől eltérően a null nem objektum vagy nem típus. Ez csak egy speciális érték, amely bármely referenciatípushoz hozzárendelhető, és bármilyen típushoz beírhatja a cast null értéket. Példák:
// 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. Automatikus dobozolás és kicsomagolás: Az automatikus dobozolási és kicsomagolási műveletek során a fordító egyszerűen Nullpointer kivétel hibát dob, ha null értéket rendelünk a primitív dobozos adattípushoz.
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; } }
Kimenet:
Exception in thread 'main' java.lang.NullPointerException
at Test.main(Test.java:6)
5. operátor példánya: A java instanceof operátor annak tesztelésére szolgál, hogy az objektum a megadott típusú (osztály vagy alosztály vagy interfész) példánya-e. Futás közben az instanceof operátor eredménye igaz, ha az Expression értéke nem null. Ez az instanceof művelet fontos tulajdonsága, ami hasznossá teszi a típusöntési ellenőrzésekhez.
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); } }
Kimenet:
false
true
6. Statikus és nem statikus módszerek: Nem hívhatunk nem statikus metódust nulla értékű referenciaváltozón, ez NullPointerException-t dob, de hívhatunk statikus metódust nulla értékű referenciaváltozókkal. Mivel a statikus metódusok statikus kötéssel vannak összekötve, nem dobnak ki nullamutató kivételt.
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;); } }
Kimenet:
static method can be called by null referenceException in thread 'main'
java.lang.NullPointerException
at Test.main(Test.java:5)
7. == és != Az összehasonlítás és a nem egyenlő operátorok megengedettek a nullával a Java-ban. Ez hasznos lehet a null ellenőrzéséhez Java objektumokkal.
Javapublic class Test { public static void main(String args[]) { // return true; System.out.println(null == null); // return false; System.out.println(null != null); } }
Kimenet:
true
false
8 . A "null" argumentumként adható át a metódusban:
Java-ban átadhatjuk a nullát argumentumként, és ki is nyomtathatjuk. Az argumentum adattípusának Referencia típusnak kell lennie. De a metódus visszatérési típusa bármilyen típusú lehet void int double vagy bármilyen más hivatkozási típus, a program logikájától függően.
Itt a 'print_null' metódus egyszerűen kiírja a fő metódusból átadott argumentumot.
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); } }
Kimenet:
Szia én vagyok: null
9. '+' operátor nullán:
A null értéket a String változókkal összefűzhetjük a java-ban. Java-ban összefűzésnek számít.
Itt a null csak a String változóval lesz összefűzve. Ha '+' operátort használunk nullával és bármilyen más típussal (Integer Double stb.) a String kivételével, hibaüzenetet ad.
Az a=null+7 egész szám hibaüzenetet ad: " rossz operandustípusok a '+'' bináris operátorhoz
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); } }
Kimenet
Concatenated value : null_value