logo

Érdekes tények a Java nulláról

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

Java
public 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. 

Java
public 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. 

Java
public 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. 

Java
public 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. 

Java
public 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.

Java
import 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

Java
import 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