logo

Faktai apie null Java

Kiekviena programavimo kalba, įskaitant „Java“, yra apribota nuliu. Nėra programuotojo, kuris nesusidūrė su jokia problema, susijusia su nuliu. Programuotojai daugiausia susiduria NullPointerException kai jie bando atlikti kai kurias operacijas su nuliniais duomenimis. NullPointerException yra prieinama klasė, kuri priklauso java.lang paketui.

Prieš suprantant null faktus, būtina žinoti Java kintamuosius. Jei nežinai ką Java kintamasis yra, eikite per šią nuorodą:

Kiekvienas kūrėjas turėtų žinoti apie šiuos „Java“ nulio faktus:

Skiriamos didžiosios ir mažosios raidės

Java negalime rašyti nulio kaip NULL arba 0, kaip programuojant C, nes nulis yra pažodinis, o „Java“ raktiniuose žodžiuose skiriamos didžiosios ir mažosios raidės.

Paimkime pavyzdį, kad suprastume, kaip nulinės didžiosios ir mažosios raidės skiriasi.

NullExample1.java

 // import classes and packages if any public class NullExample1 { // main() method start public static void main (String[] args) throws java.lang.Exception { // declare and initialize an object with NULL Object obj1 = NULL; // declare and initialize an object with null Object obj2 = null; // print both objects System.out.println('The value of obj1 is: '+obj1); System.out.println('The value of obj2 is: '+obj2); } } 

Išvestis:

semantinė klaida
Faktai apie null Java

Nuorodos kintamojo reikšmė

Pagal numatytuosius nustatymus kiekvienas nuorodos kintamasis turi nulinę reikšmę Java. Nuorodos kintamasis naudojamas nurodyti ir saugoti nuorodos tipo objektus / reikšmes Java. Klasės, masyvai, sąrašai, sąsajos ir kt. yra kai kurie „Java“ nuorodų tipai.

Taigi, nuorodos tipas išsaugo nulinę reikšmę, jei joks objektas neperduodamas nuorodos tipui.

Paimkime pavyzdį, kad suprastume, kaip nuorodos kintamasis veikia nulinei vertei:

NullExample2.java

 // import classes and packages if any public class NullExample2 { // declare two objects private static Object obj1; private static Object obj2; // main() method start public static void main (String[] args) { // print both objects System.out.println('The value of obj1 is: '+obj1); System.out.println('The value of obj2 is: '+obj2); } } 

Išvestis:

Faktai apie null Java

Nulinis tipas

Java programoje null nėra nei objektas, nei tipas. Tai speciali reikšmė, kurią galime priskirti bet kuriam nuorodos tipo kintamajam. Mes galime įvesti nulį į bet kokį norimą tipą, pvz., string, int, double ir kt.

Paimkime pavyzdį, kad suprastume, kaip bet kuriam nuorodos tipui galime priskirti nulines reikšmes.

NullExample3.java

 // import classes and packages if any public class NullExample3 { // main() method start public static void main (String[] args) { // pass a null value to a different type of variable // pass null to String String str = null; // pass null to Integer Integer itr = null; // pass null to Double Double dbl = null; // casting null to String String castedStr = (String)null; // casting null to Integer Integer castedItr = (Integer)null; // casting null to Double Double castedDbl = (Double)null; // print all reference type System.out.println('The value of str is: '+str); System.out.println('The value of itr is: '+itr); System.out.println('The value of dbl is: '+dbl); System.out.println('The value of castedStr is: '+castedStr); System.out.println('The value of castedItr is: '+castedItr); System.out.println('The value of castedDbl is: '+castedDbl); } } 

Išvestis:

Faktai apie null Java

Autoboxing ir Unboxing

Autoboksas ir Išpakavimas yra dvi svarbiausios operacijos, kurias atliekame „Java“. Kompiliatorius meta NullPointerException kai atlikdami operacijas bet kuriam primityviam langelio duomenų tipui priskiriame nulinę reikšmę.

Paimkime pavyzdį, kad suprastume „autoboxing“ ir „null“ išpakavimo faktą.

NullExample4.java

 // import classes and packages if any public class NullExample4 { // main() method start public static void main (String[] args) throws java.lang.Exception { // pass null value to a reference type Integer itr = null; // perform unboxing operation int data = itr; // print both objects System.out.println('The value of itr is: '+itr); System.out.println('The value of data is: '+data); } } 

Išvestis:

Faktai apie null Java

Operatoriaus pavyzdys

Norėdami patikrinti, ar an objektas yra nurodyto tipo pavyzdys, ar ne, mes naudojame pavyzdys operatorius. The pavyzdys operatorius grąžina true, kai vykdymo metu išraiškos reikšmė nėra nulinė. Ji vaidina svarbų vaidmenį tikrinant tipą.

Paimkime pavyzdį, kad suprastume pavyzdys operatorius:

NullExample5.java

 // import classes and packages if any public class { // main() method start public static void main (String[] args) throws java.lang.Exception { // pass null value to a reference type Integer m = null; // pass a value to a reference type Integer n = 20; // print instanceof values System.out.println(m instanceof Integer); System.out.println(n instanceof Integer); } } 

Išvestis:

Faktai apie null Java

Statinis vs. Nestatiniai metodai

Negalime iškviesti nestatinio metodo referenciniame kintamajame, kurio reikšmė nulinė. Jei jį iškviesime, jis išmes NullPointerException, bet galime iškviesti statinį metodą su referenciniais kintamaisiais su null reikšmėmis. Kadangi statiniai metodai yra sujungti naudojant statinį įrišimą, jie neišmes nulinės žymeklio išimties.

Paimkime pavyzdį, kad suprastume nulio faktą:

NullExample6.java

 // import classes and packages if any public class NullExample6 { // define static method public static void staticMethod() { //it can be called by using a null reference System.out.println('static method can be called by null reference.'); } // define non static method public void nonStaticMethod() { //it cannot be called by using a null reference System.out.println('static method cannot be called by a null reference.'); } // main() method start public static void main (String[] args) throws java.lang.Exception { NullExample6 exp = null; exp.staticMethod(); exp.nonStaticMethod(); } } 

Išvestis:

Faktai apie null Java

== ir != Operatoriai

Java programoje šie du operatoriai leidžiami su null. Abu operatoriai yra naudingi tikrinant nulį su objektais Java.

Paimkime pavyzdį, kad suprastume, kaip šie du operatoriai veikia su null.

NullExample7.java

 // import classes and packages if any public class NullExample7 { // main() method start public static void main (String[] args) { // pass null value to String type of variables // pass null to str1 String str1 = null; // pass null to str2 String str2 = null; // pass null to str3 String str3 = 'Test'; // compare strings if(str1 == str2){ System.out.println('str1 and str2 both are equal'); }else{ System.out.println('str1 and str2 are not equal'); } if(str2 == str3){ System.out.println('str2 and str3 both are equal'); }else{ System.out.println('str2 and str3 are not equal'); } if(str3 == str1){ System.out.println('str3 and str1 both are equal'); }else{ System.out.println('str3 and str1 are not equal'); } } } 

Išvestis:

Faktai apie null Java

Kiekvienas „Java“ kūrėjas turėtų žinoti visus aukščiau aptartus „null“ faktus.