logo

Fakta o null v Javě

Každý programovací jazyk, včetně Javy, je omezen na null. Neexistuje žádný programátor, který by nečelil žádnému problému v kódu souvisejícím s null. Čelí hlavně programátoři Výjimka NullPointerException když se pokusí provést nějaké operace s nulovými daty. NullPointerException je dostupná třída, která patří do balíčku java.lang.

Než pochopíte fakta o null, je nutné mít znalost proměnných Java. Pokud nevíte co Java proměnná je, přejděte na následující odkaz:

Každý vývojář by měl mít znalosti o následujících faktech null v Javě:

Citlivý na velká písmena

V Javě nemůžeme psát null jako NULL nebo 0 jako v programování v C, protože null je doslovný a klíčová slova v Javě rozlišují velká a malá písmena.

Vezměme si příklad, abychom pochopili chování null, kde se rozlišují velká a malá písmena.

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

Výstup:

Fakta o null v Javě

Hodnota referenční proměnné

Ve výchozím nastavení má každá referenční proměnná v Javě hodnotu null. Referenční proměnná se používá k označení a uložení objektů/hodnot typu reference v Javě. Třídy, pole, výčty a rozhraní atd. jsou některé referenční typy v Javě.

Pokud tedy referenčnímu typu není předán žádný objekt, referenční typ ukládá hodnotu null.

Vezměme si příklad, abychom pochopili, jak referenční proměnná funguje pro hodnotu null:

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

Výstup:

Fakta o null v Javě

Typ Null

V Javě není null ani objekt, ani typ. Je to speciální hodnota, kterou můžeme přiřadit libovolné proměnné typu reference. Můžeme přetypovat null do libovolného typu, ve kterém chceme, například string, int, double atd.

Vezměme si příklad, abychom pochopili, jak můžeme libovolnému typu odkazu přiřadit hodnoty null.

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

Výstup:

Fakta o null v Javě

Autoboxing a Unboxing

Autoboxing a Rozbalení jsou dvě nejdůležitější operace, které v Javě provádíme. Kompilátor hodí Výjimka NullPointerException když při provádění operací přiřadíme libovolnému primitivnímu datovému typu v rámečku hodnotu null.

Vezměme si příklad, abychom pochopili autoboxing a unboxing fakt null.

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

Výstup:

Fakta o null v Javě

Instance operátora

Aby bylo možné zkontrolovat, zda an objekt zda je instancí zadaného typu nebo ne, použijeme the instanceof operátor. The instanceof operátor vrátí hodnotu true, když hodnota výrazu není v době běhu null. Hraje důležitou roli při typových kontrolách.

Vezměme si příklad pro pochopení instanceof operátor:

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

Výstup:

Fakta o null v Javě

Statické vs. Nestatické metody

Nemůžeme volat nestatickou metodu na referenční proměnnou s hodnotou null. Pokud ji zavoláme, vyvolá výjimku NullPointerException, ale můžeme volat statickou metodu s referenčními proměnnými s hodnotami null. Protože jsou statické metody spojeny pomocí statické vazby, nevyvolají výjimku nulového ukazatele.

Vezměme si příklad, abychom pochopili fakt null:

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

Výstup:

přenést řetězec do int java
Fakta o null v Javě

== a != Operátoři

V Javě jsou tyto dva operátory povoleny s hodnotou null. Oba operátory jsou užitečné při kontrole null s objekty v Javě.

Vezměme si příklad, abychom pochopili, jak tyto dva operátory pracují s 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'); } } } 

Výstup:

Fakta o null v Javě

Každý vývojář Java by měl znát všechna výše diskutovaná fakta null.