logo

Interesanti fakti par nulli Java

Gandrīz visas programmēšanas valodas ir saistītas ar nulli. Diez vai ir programmētājs, kuru nulles neuztrauc. Java valodā null ir saistīta java.lang. NullPointerException . Tā kā tā ir klase java.lang pakotnē, to sauc, kad mēs cenšamies veikt dažas darbības ar nulli vai bez tās, un dažreiz mēs pat nezinām, kur tas ir noticis. Tālāk ir norādīti daži svarīgi punkti par nulli java, kas jāzina katram Java programmētājam: 

javascript daudzrindu virkne
  • Java valodā null ir īpaša vērtība, kas apzīmē vērtības vai atsauces neesamību. To lieto, lai norādītu, ka mainīgajam vai objektam pašlaik nav piešķirtas vērtības.
  • Nulles vērtība nav tāda pati kā tukša virkne vai tukšs masīvs. Tukša virkne ir virkne, kurā nav rakstzīmju, savukārt tukšs masīvs ir masīvs, kurā nav elementu.
  • Java programmēšanas valodai ir iebūvēts nulles tips, ko sauc par nulli, kas ir visu atsauces veidu apakštips. Tomēr to nevar izmantot kā mainīgā tipu, jo tam nav nevienas instances un to nevar izveidot.
  • Tiek uzskatīts par labāko praksi pārbaudīt nulles vērtības pirms jebkādu darbību veikšanas ar tām, lai izvairītos no NullPointerException (NPE) riska. NPE tiek uzskatīts par vienu no visizplatītākajiem Java izņēmumiem un var izraisīt neparedzētu uzvedību vai programmas avārijas.
  • Java valodā null tiek izmantota arī, lai norādītu, ka metode neatgriež nekādu vērtību. Tas ir pazīstams kā "neesošs" atgriešanas veids. Nederīga metode neatgriež nekādu vērtību un parasti tiek izmantota tādu darbību veikšanai kā drukāšana konsolē vai datu bāzes atjaunināšana.
  • Turklāt nulli var izmantot kā noklusējuma vērtību metodes izvēles parametriem. Tas ļauj izsaukt metodi, nenorādot šī parametra vērtību, un tā vietā tiks izmantota nulles vērtība.
  • Nav ieteicams izmantot nulli kā vērtību mainīgajam vai objektam, kas paredzēts primitīva datu tipa, piemēram, int vai double, vērtībai, jo tas izraisīs kompilēšanas laika kļūdu.
  • Nulles izmantošana Java var radīt neskaidrības un smalkas kļūdas, tāpēc ir svarīgi apzināties tā darbību un to, kā pareizi to apstrādāt savā kodā, lai novērstu kļūdas.

1. nulle ir reģistrjutīga: null ir burtisks Java un tāpēc, ka atslēgvārdi ir reģistrjutīgs Java mēs nevaram rakstīt NULL vai 0 kā C valodā. 



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

Izvade:

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

2. Atsauces mainīgā vērtība: Jebkuram Java atsauces mainīgajam ir noklusējuma vērtība 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);  }  } 

Izvade:



Value of object obj is : null 

3. Nulles veids: Atšķirībā no izplatītā nepareizā priekšstata, null nav objekts vai veids. Tā ir tikai īpaša vērtība, ko var piešķirt jebkuram atsauces veidam, un jebkuram veidam varat ierakstīt cast null. Piemēri:

 // 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. Autobokss un izpakošana: Automātiskās iesaiņošanas un izsaiņošanas operāciju laikā kompilators vienkārši izdod Nullpointer izņēmuma kļūdu, ja primitīvam kastes datu tipam tiek piešķirta nulles vērtība. 

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

Izvade:



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

5. operatora instance: Java instanceof operators tiek izmantots, lai pārbaudītu, vai objekts ir norādītā tipa (klases vai apakšklases vai interfeisa) gadījums. Darbības laikā operatora instanceof rezultāts ir patiess, ja izteiksmes vērtība nav nulle. Šī ir svarīga darbības instances īpašība, kas padara to noderīgu tipa liešanas pārbaudēm. 

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

Izvade:

false   
true

6. Statiskās un nestatiskās metodes: Mēs nevaram izsaukt nestatisku metodi atsauces mainīgajam ar nulles vērtību, tā izsauc NullPointerException, bet mēs varam izsaukt statisko metodi ar atsauces mainīgajiem ar nulles vērtībām. Tā kā statiskās metodes tiek savienotas, izmantojot statisko saistīšanu, tās neizmet nulles rādītāja izņēmumu. 

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

Izvade:

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

7. == un != Salīdzinājums un nav vienāds ar operatoriem ir atļauts ar nulli Java. Tas var būt noderīgi, pārbaudot nulli ar objektiem 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);  } } 

Izvade:

true  
false

8 . "null" var tikt nodots kā arguments metodē:

Mēs varam nodot nulli kā argumentu Java, un mēs varam izdrukāt to pašu. Argumenta datu tipam ir jābūt atsauces tipam. Bet metodes atgriešanas veids var būt jebkura veida kā void int double vai jebkurš cits atsauces veids atkarībā no programmas loģikas.

Šeit metode "print_null" vienkārši izdrukās argumentu, kas tiek nodots no galvenās metodes.

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

Izvade:

Sveiki, es esmu: null

9. Operators '+' uz nulles :

Mēs varam savienot nulles vērtību ar String mainīgajiem java. Java tiek uzskatīta par saiti.

Šeit nulle tiks savienota tikai ar mainīgo String. Ja mēs izmantojam operatoru “+” ar nulli un jebkuru citu veidu (Integer Double utt.), izņemot String, tiks parādīts kļūdas ziņojums. 

Vesels skaitlis a=null+7 parādīs kļūdas ziņojumu kā " nepareizi operandu veidi binārajam operatoram '+'

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

Izvade
Concatenated value : null_value