logo

Interessante feiten over nul op Java

Bijna alle programmeertalen zijn verbonden met null. Er is nauwelijks een programmeur die geen last heeft van null. In Java is null geassocieerd met java.lang. NullPointerException . Omdat het een klasse is in het java.lang-pakket, wordt deze aangeroepen wanneer we bepaalde bewerkingen met of zonder null proberen uit te voeren en soms weten we niet eens waar dit is gebeurd. Hieronder staan ​​enkele belangrijke punten over null in Java die elke Java-programmeur zou moeten weten: 

np.argmax
  • In Java is null een speciale waarde die de afwezigheid van een waarde of referentie vertegenwoordigt. Het wordt gebruikt om aan te geven dat aan een variabele of object momenteel geen waarde is toegewezen.
  • De nulwaarde is niet hetzelfde als een lege tekenreeks of een lege array. Een lege string is een string die geen tekens bevat, terwijl een lege array een array is die geen elementen bevat.
  • De programmeertaal Java heeft een ingebouwd nultype genaamd 'null', een subtype van alle referentietypen. Het kan echter niet als type voor een variabele worden gebruikt, omdat het geen instantie heeft en niet kan worden geïnstantieerd.
  • Het wordt als een best practice beschouwd om te controleren op null-waarden voordat u er bewerkingen op uitvoert, om het risico van een NullPointerException (NPE) te voorkomen. NPE wordt beschouwd als een van de meest voorkomende uitzonderingen in Java en kan onverwacht gedrag of crashes in een programma veroorzaken.
  • In Java wordt null ook gebruikt om aan te geven dat een methode geen waarde retourneert. Dit staat bekend als een 'void'-retourtype. Een void-methode retourneert geen enkele waarde en wordt doorgaans gebruikt voor het uitvoeren van een actie, zoals afdrukken naar de console of het bijwerken van een database.
  • Bovendien kan null worden gebruikt als standaardwaarde voor optionele parameters in een methode. Hierdoor kan een methode worden aangeroepen zonder een waarde voor die parameter op te geven en wordt in plaats daarvan de nulwaarde gebruikt.
  • Het wordt niet aanbevolen om null te gebruiken als waarde voor een variabele of object dat bedoeld is om een ​​waarde van een primitief gegevenstype zoals int of double te bevatten, omdat dit een compilatiefout zal veroorzaken.
  • Het gebruik van null in Java kan een bron van verwarring en subtiele bugs zijn. Het is dus belangrijk om op de hoogte te zijn van het gedrag ervan en hoe u dit op de juiste manier in uw code kunt verwerken om fouten te voorkomen.

1. null is hoofdlettergevoelig: null is letterlijk in Java en omdat trefwoorden dat ook zijn hoofdlettergevoelig in Java kunnen we geen NULL of 0 schrijven zoals in C-taal. 



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;   } } 

Uitgang:

5: error: cannot find symbol  
can't find symbol 'NULL'
^
variable NULL
class Test
1 error

2. Waarde referentievariabele: Elke referentievariabele in Java heeft een standaardwaarde nul

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);  }  } 

Uitgang:



Value of object obj is : null 

3. Type nul: In tegenstelling tot de algemene misvatting is null geen object en ook geen type. Het is gewoon een speciale waarde die aan elk referentietype kan worden toegewezen en u kunt cast null naar elk type typen. Voorbeelden:

 // 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. Autoboxen en unboxen: Tijdens auto-boxing- en unboxing-bewerkingen genereert de compiler eenvoudigweg de Nullpointer-uitzonderingsfout als een nulwaarde is toegewezen aan het primitieve boxed-gegevenstype. 

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;  } } 

Uitgang:



 Exception in thread 'main' java.lang.NullPointerException  
at Test.main(Test.java:6)

5. instantievan operator: De operator Java instanceof wordt gebruikt om te testen of het object een exemplaar van het opgegeven type is (klasse, subklasse of interface). Tijdens runtime is het resultaat van de operator instanceof waar als de waarde van de expressie niet nul is. Dit is een belangrijke eigenschap van instanceof operations, waardoor deze bruikbaar is voor type casting-controles. 

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);  } } 

Uitgang:

false   
true

6. Statische versus niet-statische methoden: We kunnen geen niet-statische methode aanroepen voor een referentievariabele met een nulwaarde. Deze genereert NullPointerException, maar we kunnen wel een statische methode aanroepen met referentievariabelen met nulwaarden. Omdat statische methoden zijn gekoppeld met behulp van statische binding, genereren ze geen Null pointer Exception. 

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;);  } } 

Uitgang:

static method can be called by null referenceException in thread 'main'   
java.lang.NullPointerException
at Test.main(Test.java:5)

7. == en != De vergelijking en niet gelijk aan operatoren zijn toegestaan ​​met null in Java. Dit kan handig zijn bij het controleren van nul met objecten in Java. 

Java
public class Test {  public static void main(String args[])  {  // return true;  System.out.println(null == null);  // return false;  System.out.println(null != null);  } } 

Uitgang:

true  
false

8 . 'null' kan als argument worden doorgegeven in de methode:

We kunnen de nul doorgeven als argument in Java en we kunnen hetzelfde afdrukken. Het gegevenstype van het argument moet Referentietype zijn. Maar het retourtype van de methode kan elk type zijn, zoals void int double of een ander referentietype, afhankelijk van de logica van het programma.

Hier zal de methode 'print_null' eenvoudigweg het argument afdrukken dat is doorgegeven vanuit de hoofdmethode.

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);  } } 

Uitgang:

Hallo, ik ben: nul

9. '+' operator op nul:

We kunnen de nulwaarde samenvoegen met String-variabelen in Java. Het wordt in Java beschouwd als een aaneenschakeling.

Hier wordt de nul alleen samengevoegd met de String-variabele. Als we de operator '+' gebruiken met null en een ander type (Integer Double etc.) anders dan String, zal er een foutmelding verschijnen. 

Integer a=null+7 genereert een foutmelding als ' slechte operandtypen voor binaire operator '+' '

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);  } } 

Uitvoer
Concatenated value : null_value