Fast alle Programmiersprachen sind mit Null verbunden. Es gibt kaum einen Programmierer, den Null nicht stört. In Java ist null mit java.lang verknüpft. NullPointerException . Da es sich um eine Klasse im java.lang-Paket handelt, wird sie aufgerufen, wenn wir versuchen, einige Operationen mit oder ohne Null auszuführen, und manchmal wissen wir nicht einmal, wo das passiert ist. Im Folgenden finden Sie einige wichtige Punkte zu Null in Java, die jeder Java-Programmierer kennen sollte:
Rend-Karte
- In Java ist Null ein spezieller Wert, der das Fehlen eines Werts oder einer Referenz darstellt. Es wird verwendet, um anzuzeigen, dass einer Variablen oder einem Objekt derzeit kein Wert zugewiesen ist.
- Der Nullwert ist nicht dasselbe wie eine leere Zeichenfolge oder ein leeres Array. Eine leere Zeichenfolge ist eine Zeichenfolge, die keine Zeichen enthält, während ein leeres Array ein Array ist, das keine Elemente enthält.
- Die Programmiersprache Java verfügt über einen integrierten Nulltyp namens „null“, der ein Untertyp aller Referenztypen ist. Es kann jedoch nicht als Typ für eine Variable verwendet werden, da es keine Instanz hat und nicht instanziiert werden kann.
- Es gilt als bewährte Methode, vor dem Ausführen von Vorgängen auf Nullwerte zu prüfen, um das Risiko einer NullPointerException (NPE) zu vermeiden. NPE gilt als eine der häufigsten Ausnahmen in Java und kann zu unerwartetem Verhalten oder Abstürzen in einem Programm führen.
- In Java wird Null auch verwendet, um anzugeben, dass eine Methode keinen Wert zurückgibt. Dies wird als „void“-Rückgabetyp bezeichnet. Eine void-Methode gibt keinen Wert zurück und wird normalerweise zum Ausführen einer Aktion wie dem Drucken auf der Konsole oder dem Aktualisieren einer Datenbank verwendet.
- Darüber hinaus kann null als Standardwert für optionale Parameter in einer Methode verwendet werden. Dadurch kann eine Methode aufgerufen werden, ohne einen Wert für diesen Parameter anzugeben, und stattdessen wird der Nullwert verwendet.
- Es wird nicht empfohlen, null als Wert für eine Variable oder ein Objekt zu verwenden, das einen Wert eines primitiven Datentyps wie int oder double enthalten soll, da dies zu einem Fehler bei der Kompilierung führt.
- Die Verwendung von null in Java kann zu Verwirrung und subtilen Fehlern führen. Daher ist es wichtig, sich seines Verhaltens bewusst zu sein und zu wissen, wie man es in Ihrem Code richtig handhabt, um Fehler zu vermeiden.
1. null unterscheidet zwischen Groß- und Kleinschreibung: null ist in Java ein Literal und weil Schlüsselwörter es sind Groß- und Kleinschreibung beachten In Java können wir nicht NULL oder 0 schreiben wie in der Sprache C.
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; } }
Ausgabe:
5: error: cannot find symbol
can't find symbol 'NULL'
^
variable NULL
class Test
1 error
2. Referenzvariablenwert: Jede Referenzvariable in Java hat einen Standardwert null .
Javapublic 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); } }
Ausgabe:
Value of object obj is : null 3. Art von Null: Im Gegensatz zu dem weit verbreiteten Missverständnis ist null weder ein Objekt noch ein Typ. Es handelt sich lediglich um einen speziellen Wert, der jedem Referenztyp zugewiesen werden kann, und Sie können null in jeden Typ umwandeln. Beispiele:
// 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. Autoboxing und Unboxing: Während Auto-Boxing- und Unboxing-Vorgängen löst der Compiler einfach einen Nullpointer-Ausnahmefehler aus, wenn dem primitiven geboxten Datentyp ein Nullwert zugewiesen wird.
Javapublic 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; } }
Ausgabe:
Exception in thread 'main' java.lang.NullPointerException
at Test.main(Test.java:6)
5. Instanz des Operators: Mit dem Java-Instanceof-Operator wird getestet, ob das Objekt eine Instanz des angegebenen Typs (Klasse, Unterklasse oder Schnittstelle) ist. Zur Laufzeit ist das Ergebnis des Operators „instanceof“ wahr, wenn der Wert des Ausdrucks nicht null ist. Dies ist eine wichtige Eigenschaft der Instanzoperation, die sie für Typumwandlungsprüfungen nützlich macht.
Javapublic 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); } }
Ausgabe:
false
true
6. Statische vs. nichtstatische Methoden: Wir können keine nicht statische Methode für eine Referenzvariable mit einem Nullwert aufrufen, da sonst eine NullPointerException ausgelöst wird. Wir können jedoch eine statische Methode mit Referenzvariablen mit Nullwerten aufrufen. Da statische Methoden durch statische Bindung gebunden werden, lösen sie keine Nullzeiger-Ausnahme aus.
Javapublic 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;); } }
Ausgabe:
static method can be called by null referenceException in thread 'main'
java.lang.NullPointerException
at Test.main(Test.java:5)
7. == und != Der Vergleich und die Ungleichheitsoperatoren sind in Java mit Null zulässig. Dies kann bei der Überprüfung von Null mit Objekten in Java nützlich sein.
Javapublic class Test { public static void main(String args[]) { // return true; System.out.println(null == null); // return false; System.out.println(null != null); } }
Ausgabe:
true
false
8 . 'null' kann als Argument in der Methode übergeben werden:
Wir können die Null als Argument in Java übergeben und dasselbe ausgeben. Der Datentyp des Arguments sollte Referenztyp sein. Der Rückgabetyp der Methode könnte jedoch je nach Programmlogik ein beliebiger Typ wie void int double oder ein anderer Referenztyp sein.
Hier gibt die Methode „print_null“ einfach das Argument aus, das von der Hauptmethode übergeben wird.
Javaimport 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); } }
Ausgabe :
Hey, ich bin: null
9. '+'-Operator auf null:
Wir können den Nullwert mit String-Variablen in Java verketten. Es wird in Java als Verkettung betrachtet.
Hier wird die Null nur mit der String-Variablen verkettet. Wenn wir den Operator „+“ mit Null und einem anderen Typ (Integer Double usw.) außer String verwenden, wird eine Fehlermeldung ausgegeben.
Die Ganzzahl a=null+7 gibt eine Fehlermeldung aus: Ungültige Operandentypen für binären Operator „+“
Javaimport 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); } }
Ausgabe
Concatenated value : null_value