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: 

  • 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  (  &  quot  ;  Value     of     object     obj     is     :     &  quot  ;     +     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  (      &  quot  ;     static     method        can     be     called     by     null     reference     &     quot  ;);      }      private     void     nonStaticMethod  ()      {      // Can not be called by null reference      System  .  out  .  print  (  &  quot  ;      Non     -     static     method     -     &  quot  ;);      System  .  out  .  println  (      &  quot  ;      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