logo

עובדות על null ב-Java

כל שפת תכנות, כולל Java, מוגבלת ב-null. אין מתכנת שלא נתקל בבעיה כלשהי בקוד הקשור ל-null. מתכנתים מתמודדים בעיקר NullPointerException כאשר הם מנסים לבצע פעולות מסוימות עם נתונים null. 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); } } 

תְפוּקָה:

עובדות על null ב-Java

ערך משתנה התייחסות

כברירת מחדל, לכל משתנה התייחסות יש ערך null ב-Java. משתנה התייחסות משמש לציון ואחסון של אובייקטים/ערכים מסוג הפניה ב-Java. מחלקות, מערכים, ספירות וממשקים וכו' הם כמה סוגי התייחסות ב-Java.

אז, סוג הפניה מאחסן ערך null אם לא מועבר אובייקט לסוג הפניה.

ניקח דוגמה כדי להבין כיצד משתנה התייחסות פועל עבור ערך 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); } } 

תְפוּקָה:

עובדות על null ב-Java

סוג ריק

ב-Java, null הוא לא אובייקט ולא סוג. זהו ערך מיוחד שאנו יכולים להקצות לכל משתנה מסוג התייחסות. אנו יכולים להטיל null לכל סוג בו נרצה, כגון string, int, double וכו'.

ניקח דוגמה כדי להבין כיצד אנו יכולים להקצות ערכי 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); } } 

תְפוּקָה:

עובדות על null ב-Java

אוטובוקסינג ו-Unboxing

אוטובוקסינג ו Unboxing הן שתי הפעולות החשובות ביותר שאנו מבצעים בג'אווה. המהדר זורק NullPointerException כאשר אנו מקצים ערך null לכל סוג נתונים פרימיטיבי תוך ביצוע הפעולות.

בואו ניקח דוגמה כדי להבין את ה-autoboxing ואת עובדת unboxing של 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); } } 

תְפוּקָה:

עובדות על null ב-Java

המופע של מפעיל

על מנת לבדוק האם א לְהִתְנַגֵד הוא מופע מהסוג שצוין או לא, אנו משתמשים ב- מופע של מַפעִיל. ה מופע של האופרטור מחזיר true כאשר הערך של הביטוי אינו null בזמן הריצה. הוא ממלא תפקיד חשוב בהמחאות הדפסה.

בואו ניקח דוגמה כדי להבין את מופע של מַפעִיל:

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

סטטי לעומת שיטות לא סטטיות

אנחנו לא יכולים לקרוא למתודה לא סטטית על משתנה התייחסות עם ערך null. אם נקרא לזה, זה יזרוק את NullPointerException, אבל אנחנו יכולים לקרוא למתודה הסטטית עם משתני התייחסות עם ערכי null. מכיוון ששיטות סטטיות מקושרות באמצעות כריכה סטטית, הן לא יזרקו חריג מצביע Null.

בואו ניקח דוגמה כדי להבין את העובדה של 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(); } } 

תְפוּקָה:

עובדות על 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

כל מפתח ג'אווה צריך להיות בעל ידע בכל העובדות שדנו לעיל של null.