logo

Факти за null в Java

Всеки език за програмиране, включително Java, е ограничен с null. Няма програмист, който да не е срещал проблем в кода, свързан с null. Програмистите се сблъскват главно NullPointerException когато се опитват да извършат някои операции с нулеви данни. NullPointerException е наличен клас, който принадлежи към пакета java.lang.

Преди да разберете фактите за null, е необходимо да имате познания за променливите на Java. Ако не знаете какво Java променлива е, преминете през следната връзка:

Всеки разработчик трябва да знае за следните факти за null в Java:

Различаващ главни от малки букви

В Java не можем да напишем null като NULL или 0, както при програмирането на C, тъй като null е литерал и ключовите думи са чувствителни към малки и големи букви в Java.

Нека вземем пример, за да разберем чувствителното към малки и малки букви поведение на null.

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

Изход:

как да надстроите java
Факти за null в Java

Стойност на референтна променлива

По подразбиране всяка референтна променлива има нулева стойност в Java. Референтна променлива се използва за указване и съхраняване на обекти/стойности от референтен тип в Java. Класове, масиви, изброявания и интерфейси и т.н. са някои референтни типове в Java.

И така, референтен тип съхранява нулева стойност, ако към референтен тип не е предаден обект.

двойно в java

Нека вземем пример, за да разберем как работи референтна променлива за нулева стойност:

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

Изход:

Факти за null в Java

Нулев тип

В Java null не е нито обект, нито тип. Това е специална стойност, която можем да присвоим на всяка променлива от референтен тип. Можем да преобразуваме null във всеки тип, в който пожелаем, като например string, int, double и т.н.

Нека вземем пример, за да разберем как можем да присвоим нулеви стойности на който и да е референтен тип.

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

Изход:

Факти за null в Java

Autoboxing и Unboxing

Автобокс и Разопаковане са двете най-важни операции, които извършваме в Java. Компилаторът хвърля NullPointerException когато присвояваме нулева стойност на всеки примитивен тип данни в кутия, докато изпълняваме операциите.

Нека вземем пример, за да разберем автобоксирането и факта за разопаковане на 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); } } 

Изход:

arraylist в java сортиране
Факти за null в Java

Екземплярът на Operator

За да проверите дали ан обект е екземпляр от посочения тип или не, използваме instanceof оператор. The instanceof операторът връща true, когато стойността на израза не е нула по време на изпълнение. Играе важна роля при проверките за типове.

Нека вземем пример, за да разберем instanceof оператор:

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

Изход:

Факти за null в Java

Статично Vs. Нестатични методи

Не можем да извикаме нестатичен метод на референтна променлива с нулева стойност. Ако го извикаме, той ще хвърли NullPointerException, но можем да извикаме статичния метод с референтни променливи с нулеви стойности. Тъй като статичните методи са свързани чрез статично обвързване, те няма да хвърлят изключение за нулев указател.

Нека вземем пример, за да разберем факта на нула:

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

Изход:

Факти за null в Java

== и != Оператори

В Java тези два оператора са разрешени с null. И двата оператора са полезни при проверка на null с обекти в Java.

Нека вземем пример, за да разберем как тези два оператора работят с 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'); } } } 

Изход:

Факти за null в Java

Всеки разработчик на Java трябва да има познания за всички обсъдени по-горе факти за null.