ホームページ > Java > &#&はじめる > nullはJavaのオブジェクトですか?

nullはJavaのオブジェクトですか?

王林
リリース: 2019-11-25 10:47:28
オリジナル
3803 人が閲覧しました

nullはJavaのオブジェクトですか?

1. Null は不確実なオブジェクトを表します

Java では、null は不確実なオブジェクトを識別するために使用されるキーワードです。したがって、参照型変数にはnullを代入できますが、基本型変数にはnullを代入できません。

例: int a = null; は誤りです。オブジェクト o = null は正しいです。

Java では、変数の適用は 1 つの原則に従います。変数は、使用する前に最初に定義し、初期化する必要があります。 a に値を代入せずに int a の後に a の値を出力することはできません。このペアは参照型変数にも適用されます。

参照型変数を定義する場合、最初に明確な値を指定できない場合がありますが、値が指定されていない場合、プログラムは try ステートメント ブロックで値を初期化することがあります。このとき、以下の変数を使用するとエラーが報告されます。このとき、最初に変数に null 値を代入すると、問題は解決されます。例:

Connection conn = null
    try {
        conn = DriverManager.getConnection("url", "user", "password");
        } catch (SQLException e) {
          e.printStackTrace();
  }
    String catalog = conn.getCatalog();
ログイン後にコピー

conn = null が最初に指定されていない場合、最後の文でエラーが報告されます。

Java 学習ビデオの推奨: Java 入門学習

2. null 自体はオブジェクトではなく、Object のインスタンスでもありません

null ですがそれ自体は未定義のオブジェクトを表すことができますが、null 自体に関する限り、それはオブジェクトではなく、それがどのような型であるか、また java.lang.Object のインスタンスでもありません。

簡単な例を作成できます:

//null是对象吗? 属于Object类型吗?
if (null instanceof java.lang.Object) {
    System.out.println("null属于java.lang.Object类型");
} else {
    System.out.println("null不属于java.lang.Object类型");
  }
ログイン後にコピー

結果が出力されます: null は java.lang.Object タイプに属しません

3. Java は値を割り当てますデフォルトで変数に

変数を定義するとき、定義後に変数に値が割り当てられていない場合、Java は実行時に自動的に変数に値を割り当てます。割り当ての原則は、整数型 int、byte、short、long には値 0 が自動的に割り当てられ、小数点付きの float および double には値 0.0 が自動的に割り当てられ、boolean 型には値 false が自動的に割り当てられ、その他の参照型には自動的に値が割り当てられます。変数には自動的に null 値が割り当てられます。

4. コンテナ タイプと null

List: 重複要素が許可され、任意の数の null を追加できます。

Set: 重複した要素は許可されず、最大 1 つの null を追加できます。

Map: Map キーには最大 1 つの null を追加でき、値フィールドに制限はありません。

Array: 基本型配列 定義後、初期値が与えられていない場合、Java ランタイム使用時に自動的に値が与えられます。参照型配列の場合、初期値が与えられない場合、すべての要素の値はnullになります。

5. null のその他の機能

1. 参照型データが null かどうかを判定します。 == で判断してください。

2. メモリを解放し、null 以外の参照型変数が null を指すようにします。このオブジェクトはどのオブジェクトでも使用されなくなりました。 JVM ガベージ コレクション メカニズムがリサイクルされるまで待ちます。

その他の関連記事の推奨事項: Java 言語の概要

以上がnullはJavaのオブジェクトですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート