Mielenkiintoisia faktoja nullista Javassa

Melkein kaikki ohjelmointikielet on sidottu nollalla. Tuskin on ohjelmoijaa, jota null ei vaivaa. Javassa null liittyy java.lang. NullPointerException . Koska se on java.lang-paketin luokka, sitä kutsutaan, kun yritämme suorittaa joitain operaatioita nullilla tai ilman, ja joskus emme edes tiedä missä se on tapahtunut. Alla on joitain tärkeitä kohtia javan nullista, jotka jokaisen Java-ohjelmoijan tulisi tietää: 

  • Javassa null on erityinen arvo, joka edustaa arvon tai viittauksen puuttumista. Sitä käytetään osoittamaan, että muuttujalle tai objektille ei ole tällä hetkellä määritetty arvoa.
  • Nolla-arvo ei ole sama kuin tyhjä merkkijono tai tyhjä taulukko. Tyhjä merkkijono on merkkijono, joka ei sisällä merkkejä, kun taas tyhjä matriisi on jono, joka ei sisällä elementtejä.
  • Java-ohjelmointikielessä on sisäänrakennettu nollatyyppi nimeltä "null", joka on kaikkien viitetyyppien alatyyppi. Sitä ei kuitenkaan voi käyttää muuttujan tyyppinä, koska sillä ei ole esiintymää eikä sitä voida instantoida.
  • Parhaana käytäntönä on tarkistaa nolla-arvot ennen kuin teet niille mitään toimintoja, jotta vältetään NullPointerException (NPE) -riski. NPE:tä pidetään yhtenä yleisimmistä poikkeuksista Javassa, ja se voi aiheuttaa odottamatonta toimintaa tai kaatumia ohjelmassa.
  • Javassa nulla käytetään myös osoittamaan, että menetelmä ei palauta arvoa. Tätä kutsutaan "tyhjäksi" palautustyypiksi. Void-menetelmä ei palauta arvoa, ja sitä käytetään yleensä toimintojen suorittamiseen, kuten tulostukseen konsoliin tai tietokannan päivittämiseen.
  • Lisäksi nulla voidaan käyttää oletusarvona menetelmän valinnaisille parametreille. Tämä mahdollistaa menetelmän kutsumisen määrittämättä arvoa tälle parametrille, ja sen sijaan käytetään nolla-arvoa.
  • Ei ole suositeltavaa käyttää tyhjää arvona muuttujalle tai objektille, joka on tarkoitettu sisältämään primitiivisen tietotyypin, kuten int tai double, arvoa, koska se aiheuttaa käännösaikavirheen.
  • Nollan käyttö Javassa voi aiheuttaa hämmennystä ja hienovaraisia ​​virheitä, joten on tärkeää olla tietoinen sen käyttäytymisestä ja siitä, miten sitä käsitellään oikein koodissasi virheiden estämiseksi.

1. null on isot ja pienet kirjaimet erotteleva: null on kirjaimellinen Javassa ja koska avainsanat ovat kirjainkoolla Javassa emme voi kirjoittaa NULL tai 0 kuten C-kielellä. 

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

Lähtö:

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

2. Viitemuuttujan arvo: Jokaisella Java-viitemuuttujalla on oletusarvo tyhjä

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

Lähtö:

 Value of object obj is : null   

3. Nollan tyyppi: Toisin kuin yleinen väärinkäsitys, null ei ole Object tai tyyppi. Se on vain erityinen arvo, joka voidaan määrittää mille tahansa viitetyypille, ja voit kirjoittaa cast null mille tahansa tyypille Esimerkkejä:

  // 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 ja laatikoiden purkaminen: Automaattisen pakkauksen ja pakkauksen purkamisen aikana kääntäjä yksinkertaisesti antaa Nullpointer-poikkeusvirheen, jos primitiiviselle laatikkotietotyypille on määritetty tyhjä arvo. 

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

Lähtö:

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

5. instanceof-operaattori: Java instanceof -operaattoria käytetään testaamaan, onko objekti tietyn tyyppinen esiintymä (luokka tai alaluokka tai liitäntä). Ajon aikana operaattoreiden instanceof tulos on tosi, jos lausekkeen arvo ei ole nolla. Tämä on tärkeä instanssitoiminnan ominaisuus, mikä tekee siitä hyödyllisen tyyppivalutarkistuksissa. 

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

Lähtö:

 false    
true

6. Staattiset vs ei-staattiset menetelmät: Emme voi kutsua ei-staattista menetelmää viitemuuttujalla, jolla on nolla-arvo, se heittää NullPointerExceptionin, mutta voimme kutsua staattista menetelmää viitemuuttujien kanssa, joilla on nolla-arvo. Koska staattiset menetelmät sidotaan käyttämällä staattista sidontaa, ne eivät anna nollaosoittimen poikkeusta. 

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

Lähtö:

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

7. == ja != Vertailu ja eri operaattorit ovat sallittuja nullilla Javassa. Tästä voi olla hyötyä nolla-arvon tarkistamisessa Java-objektien kanssa. 

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

Lähtö:

 true   
false

8 . "null" voidaan välittää argumenttina menetelmässä:

Voimme välittää nollan argumenttina javassa ja voimme tulostaa saman. Argumentin tietotyypin tulee olla Viitetyyppi. Mutta menetelmän paluutyyppi voi olla mikä tahansa tyyppi void int double tai mikä tahansa muu viitetyyppi ohjelman logiikan mukaan.

Tässä menetelmä "print_null" yksinkertaisesti tulostaa argumentin, joka välitetään päämenetelmästä.

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

Lähtö:

Hei minä olen: nolla

9. '+'-operaattori tyhjällä :

Voimme ketjuttaa nolla-arvon javassa String-muuttujien kanssa. Sitä pidetään ketjutuksena javassa.

Tässä nolla-arvo vain ketjutetaan String-muuttujan kanssa. Jos käytämme '+'-operaattoria, jossa on null ja mitä tahansa muuta tyyppiä (Integer Double jne.) paitsi String, se antaa virheilmoituksen. 

Kokonaisluku a=null+7 antaa virheilmoituksen muodossa ' huonot operandityypit binäärioperaattorille '+'

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

Lähtö
Concatenated value : null_value