logo

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ää: 

leijuva css
  • 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("Value of object obj is : " + 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(  " 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;);  } } 

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