logo

Interessante fakta om null i Java

Næsten alle programmeringssprog er bundet til null. Der er næppe en programmør, der ikke er plaget af null. I Java er null tilknyttet java.lang. NullPointerException . Da det er en klasse i java.lang-pakken, kaldes det, når vi forsøger at udføre nogle operationer med eller uden null, og nogle gange ved vi ikke engang, hvor det er sket. Nedenfor er nogle vigtige punkter om null i java, som enhver Java-programmør bør vide: 

atoi c
  • I Java er null en speciel værdi, der repræsenterer fraværet af en værdi eller reference. Det bruges til at angive, at en variabel eller et objekt i øjeblikket ikke er tildelt en værdi.
  • Nullværdien er ikke den samme som en tom streng eller en tom matrix. En tom streng er en streng, der ikke indeholder tegn, mens en tom matrix er en matrix, der ikke indeholder nogen elementer.
  • Java-programmeringssproget har en indbygget null-type kaldet 'null', som er en undertype af alle referencetyper. Den kan dog ikke bruges som en type for en variabel, fordi den ikke har nogen instans og ikke kan instansieres.
  • Det anses for at være en bedste praksis at tjekke for nul-værdier, før du udfører nogen handlinger på dem for at undgå risikoen for en NullPointerException (NPE). NPE betragtes som en af ​​de mest almindelige undtagelser i Java og kan forårsage uventet adfærd eller nedbrud i et program.
  • I Java bruges null også til at angive, at en metode ikke returnerer nogen værdi. Dette er kendt som en 'ugyldig' returtype. En void-metode returnerer ikke nogen værdi og bruges typisk til at udføre en handling, såsom udskrivning til konsollen eller opdatering af en database.
  • Derudover kan null bruges som standardværdi for valgfrie parametre i en metode. Dette gør det muligt at kalde en metode uden at angive en værdi for den parameter, og null-værdien vil blive brugt i stedet.
  • Det anbefales ikke at bruge null som en værdi for en variabel eller et objekt, der er beregnet til at indeholde en værdi af en primitiv datatype såsom int eller double, fordi det vil forårsage en kompileringsfejl.
  • Brugen af ​​null i Java kan være en kilde til forvirring og subtile fejl, så det er vigtigt at være opmærksom på dets adfærd og hvordan man håndterer det korrekt i din kode for at forhindre fejl.

1. null skelner mellem store og små bogstaver: null er bogstaveligt i Java, og fordi søgeord er det skelner mellem store og små bogstaver i java kan vi ikke skrive NULL eller 0 som i C-sprog. 



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

Produktion:

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

2. Referencevariabelværdi: Enhver referencevariabel i Java har en standardværdi 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);  }  } 

Produktion:



Value of object obj is : null 

3. Nultype: I modsætning til den almindelige misforståelse er null ikke Objekt eller hverken en type. Det er bare en speciel værdi, som kan tildeles enhver referencetype, og du kan skrive cast null til enhver 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. Autoboxing og unboxing: Under auto-boxing og unboxing-operationer kaster compiler simpelthen Nullpointer-undtagelsesfejl, hvis en null-værdi er tildelt primitiv boxed-datatype. 

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

Produktion:



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

5. instans af operatør: Operatoren java instanceof bruges til at teste, om objektet er en instans af den angivne type (klasse eller underklasse eller grænseflade). Ved kørselstid er resultatet af instanceof-operatoren sandt, hvis værdien af ​​udtrykket ikke er null. Dette er en vigtig egenskab ved instanceof operation, som gør det nyttigt til type casting checks. 

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

Produktion:

false   
true

6. Statiske vs ikke-statiske metoder: Vi kan ikke kalde en ikke-statisk metode på en referencevariabel med nulværdi, den vil kaste NullPointerException, men vi kan kalde statisk metode med referencevariable med nullværdier. Da statiske metoder er bundet ved hjælp af statisk binding, vil de ikke kaste 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;);  } } 

Produktion:

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 lig med operatorer er tilladt med null i Java. Dette kan gøres nyttigt ved kontrol af 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);  } } 

Produktion:

true  
false

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

Vi kan sende null som et argument i java, og vi kan udskrive det samme. Datatypen for argumentet skal være Reference Type. Men returmetoden kan være en hvilken som helst type som void int double eller enhver anden referencetype afhængigt af programmets logik.

Her vil metoden 'print_null' blot udskrive 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);  } } 

Output:

Hej jeg er: null

9. '+' operator på null:

Vi kan sammenkæde null-værdien med String-variabler i java. Det betragtes som en sammenkædning i java.

Her vil null kun blive sammenkædet med String-variablen. Hvis vi bruger '+'-operatoren med null og enhver anden type (integer Double etc.) end String, vil det afgive en fejlmeddelelse. 

Heltal a=null+7 vil sende en fejlmeddelelse 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);  } } 

Produktion
Concatenated value : null_value