logo

Interessante fakta om null i Java

Nesten alle programmeringsspråk er bundet til null. Det er knapt en programmerer som ikke er plaget av null. I Java er null tilknyttet java.lang. NullPointerException . Siden det er en klasse i java.lang-pakken kalles den når vi prøver å utføre noen operasjoner med eller uten null og noen ganger vet vi ikke engang hvor det har skjedd. Nedenfor er noen viktige punkter om null i java som enhver Java-programmerer bør vite: 

atoi c
  • I Java er null en spesiell verdi som representerer fraværet av en verdi eller referanse. Den brukes til å indikere at en variabel eller et objekt for øyeblikket ikke har en verdi tilordnet det.
  • Nullverdien er ikke det samme som en tom streng eller en tom matrise. En tom streng er en streng som ikke inneholder tegn, mens en tom matrise er en matrise som ikke inneholder noen elementer.
  • Java-programmeringsspråket har en innebygd null-type kalt 'null' som er en undertype av alle referansetyper. Den kan imidlertid ikke brukes som en type for en variabel fordi den ikke har noen forekomst og ikke kan instansieres.
  • Det anses som en beste praksis å se etter nullverdier før du utfører noen operasjoner på dem for å unngå risikoen for en NullPointerException (NPE). NPE regnes som et av de vanligste unntakene i Java og kan forårsake uventet oppførsel eller krasjer i et program.
  • I Java brukes også null for å indikere at en metode ikke returnerer noen verdi. Dette er kjent som en "ugyldig" returtype. En void-metode returnerer ingen verdi og brukes vanligvis til å utføre en handling som å skrive ut til konsollen eller oppdatere en database.
  • I tillegg kan null brukes som standardverdi for valgfrie parametere i en metode. Dette gjør at en metode kan kalles uten å spesifisere en verdi for den parameteren, og nullverdien vil bli brukt i stedet.
  • Det anbefales ikke å bruke null som en verdi for en variabel eller et objekt som er ment å inneholde en verdi av en primitiv datatype som int eller double fordi det vil forårsake en kompileringstidsfeil.
  • Bruken av null i Java kan være en kilde til forvirring og subtile feil, så det er viktig å være klar over oppførselen og hvordan du håndterer den riktig i koden din for å forhindre feil.

1. null skiller mellom store og små bokstaver: null er bokstavelig i Java og fordi søkeord er det skiller mellom store og små bokstaver i java kan vi ikke skrive NULL eller 0 som i C-språk. 



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

Produksjon:

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

2. Referansevariabelverdi: Enhver referansevariabel i Java har en standardverdi 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);  }  } 

Produksjon:



Value of object obj is : null 

3. Type null: I motsetning til den vanlige misforståelsen er null ikke objekt eller verken type. Det er bare en spesiell verdi som kan tilordnes til enhver referansetype, og du kan skrive cast null til hvilken som helst type Eksempler:

 // 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. Autoboksing og utboksing: Under auto-boksing og unboxing-operasjoner kaster kompilatoren ganske enkelt Nullpointer-unntaksfeil hvis en nullverdi er tilordnet primitiv boksdatatype. 

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

Produksjon:



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

5. forekomst av operatør: Operatoren java instanceof brukes til å teste om objektet er en instans av den angitte typen (klasse eller underklasse eller grensesnitt). Ved kjøring er resultatet av instanceof-operatoren sant hvis verdien av uttrykket ikke er null. Dette er en viktig egenskap ved instanceof operation som gjør den nyttig for type casting-sjekker. 

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

Produksjon:

false   
true

6. Statiske vs ikke-statiske metoder: Vi kan ikke kalle en ikke-statisk metode på en referansevariabel med nullverdi, den vil kaste NullPointerException, men vi kan kalle statisk metode med referansevariabler med nullverdier. Siden statiske metoder er bundet ved hjelp av statisk binding, vil de ikke kaste Null-pekerunntak. 

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

Produksjon:

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

7. == og != Sammenligningen og ikke lik operatorer er tillatt med null i Java. Dette kan gjøres nyttig for å sjekke null med objekter i 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);  } } 

Produksjon:

true  
false

8 . 'null' kan sendes som et argument i metoden:

Vi kan sende null som et argument i java, og vi kan skrive ut det samme. Datatypen argument skal være Reference Type. Men returmetoden kan være hvilken som helst type som void int double eller en hvilken som helst annen referansetype avhengig av programmets logikk.

Her vil metoden 'print_null' ganske enkelt skrive ut argumentet som sendes fra hovedmetoden.

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

Utgang:

Hei jeg er: null

9. '+'-operator på null:

Vi kan sette sammen nullverdien med strengvariabler i java. Det regnes som en sammenkobling i java.

Her vil null bare bli sammenkoblet med String-variabelen. Hvis vi bruker '+'-operatoren med null og en hvilken som helst annen type (heltallsdobbel osv.) enn streng, vil det gi en feilmelding. 

Heltall a=null+7 vil gi en feilmelding som ' dårlige operandtyper for binær 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);  } } 

Produksjon
Concatenated value : null_value