Java を含むすべてのプログラミング言語は null で制限されます。 null に関連するコードで問題に直面しなかったプログラマーは一人もいません。プログラマーが主に直面するのは、 NullPointerException null データを使用して何らかの操作を実行しようとしたとき。 NullPointerException は、java.lang パッケージに属する利用可能なクラスです。
null の事実を理解する前に、Java 変数の知識が必要です。何かわからない場合は Java変数 つまり、次のリンクにアクセスしてください。
すべての開発者は、Java における null の次の事実についての知識を持っている必要があります。
大文字と小文字を区別
Java では、null はリテラルであり、Java ではキーワードは大文字と小文字が区別されるため、C プログラミングのように null を NULL または 0 として記述することはできません。
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 の参照型の一部です。
したがって、参照型にオブジェクトが渡されない場合、参照型には 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); } }
出力:
ヌル型
Java では、null はオブジェクトでも型でもありません。これは、任意の参照型変数に割り当てることができる特別な値です。 null を string、int、double などの任意の型にキャストできます。
任意の参照型に null 値を割り当てる方法を理解するための例を見てみましょう。
スタックJava
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); } }
出力:
オートボックス化とアンボックス化
オートボクシング そして 開梱する は、Java で実行する 2 つの最も重要な操作です。コンパイラはスローします NullPointerException 操作の実行中に、任意のプリミティブ ボックス データ型に null 値を割り当てるとき。
オートボックス化と 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 でない場合に true を返します。これは型キャストチェックにおいて重要な役割を果たします。
理解するために例を挙げてみましょう インスタンスの オペレーター:
クロムアドレスバー
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); } }
出力:
静的 vs.非静的メソッド
Null 値を持つ参照変数に対して非静的メソッドを呼び出すことはできません。これを呼び出すと NullPointerException がスローされますが、null 値を持つ参照変数を使用して静的メソッドを呼び出すことができます。静的メソッドは静的バインディングを使用して結合されるため、Null ポインター例外をスローしません。
null の事実を理解するために例を見てみましょう。
NullExample6.java
結合を使用してSQLで更新する
// 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(); } }
出力:
== および != 演算子
Java では、これら 2 つの演算子に null を使用できます。どちらの演算子も、Java のオブジェクトで null をチェックするのに役立ちます。
これら 2 つの演算子が 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'); } } }
出力:
すべての Java 開発者は、上で説明した null に関するすべての事実についての知識を持っている必要があります。