カテゴリ: JavaSilver試験対策 更新日: 2025/12/10

Javaのnullとリテラルの違いを完全解説!初心者でも理解できる基礎知識

032
Javaのnullとリテラルの違い

先生と生徒の会話形式で理解しよう

生徒

「Javaで変数にnullを代入する場合と、空文字""を代入する場合の違いって何ですか?」

先生

「良い質問です!nullは、変数が何も参照していないことを示します。一方、空文字は文字列オブジェクトを参照していますが、その中身が空であるということです。具体例で確認してみましょう。」

1. nullとは?

1. nullとは?
1. nullとは?

Javaでは、nullは参照型変数が何も参照していない状態を表します。例えば、次のように記述します:


Object obj = null;
System.out.println(obj);

このコードを実行すると、objには何も参照されていないため、System.out.printlnは「null」と表示します。この挙動は、Javaのprintlnメソッドの仕様によるものです。

2. 空文字との違い

2. 空文字との違い
2. 空文字との違い

空文字は、文字列オブジェクトを参照しているが、その中身が空である状態を示します。次の例を見てください:


String str = "";
System.out.println(str);

このコードを実行すると、空文字列オブジェクトが参照され、その中身(何もない文字列)が表示されます。そのため、コンソールには何も出力されませんが、エラーは発生しません。

3. NULLは使えない理由

3. NULLは使えない理由
3. NULLは使えない理由

Javaでは、リテラルとしてNULLは使用できません。nullは小文字で固定されており、大文字のNULLはコンパイルエラーとなります。次のコードはエラーになります:


Object obj = NULL; // コンパイルエラー

この点を理解していないと、コードが意図せず動作しなくなる可能性があります。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 試験対策:nullと空文字の使い分け

4. 試験対策:nullと空文字の使い分け
4. 試験対策:nullと空文字の使い分け

Javaでnullを使用する際の注意点と、空文字との違いを整理しましょう:

  • nullは、参照型変数が何も参照していないことを示す。
  • 空文字は、文字列オブジェクトを参照し、その中身が空であることを示す。
  • NULL(大文字)は使用できず、コンパイルエラーになる。

次のコードで違いをさらに確認しましょう:


public class Test {
    public static void main(String[] args) {
        String str1 = null;
        String str2 = "";

        if (str1 == null) {
            System.out.println("str1 is null");
        }
        if (str2.isEmpty()) {
            System.out.println("str2 is an empty string");
        }
    }
}

実行結果:


str1 is null
str2 is an empty string

このように、nullと空文字を使い分けることで、適切なプログラム設計が可能になります。

5. まとめ

5. まとめ
5. まとめ

Javaにおけるnullと空文字の違いについて詳しく理解することができました。nullは参照型変数が何も参照していないことを表し、一方で空文字は文字列オブジェクトを参照しその中身が空であることを示します。また、NULL(大文字)はJavaではリテラルとして認識されず、使用できないことも確認しました。

これらの概念を正しく理解して使い分けることで、プログラムの予期しないエラーを防ぎ、効率的なコードを書くことができます。

以下にnullと空文字の使い分けをさらに確認するためのサンプルプログラムを用意しました:


public class NullVsEmpty {
    public static void main(String[] args) {
        String data = null;

        if (data == null) {
            System.out.println("The variable 'data' is null.");
        } else if (data.isEmpty()) {
            System.out.println("The variable 'data' is an empty string.");
        } else {
            System.out.println("The variable 'data' has a value: " + data);
        }

        data = "";

        if (data == null) {
            System.out.println("The variable 'data' is null.");
        } else if (data.isEmpty()) {
            System.out.println("The variable 'data' is an empty string.");
        } else {
            System.out.println("The variable 'data' has a value: " + data);
        }
    }
}

実行結果:


The variable 'data' is null.
The variable 'data' is an empty string.

このプログラムはnullと空文字の挙動を比較するシンプルな例であり、どちらが適切かを判断する際の参考になります。

先生と生徒の振り返り会話

生徒

nullと空文字の違いがよく分かりました!空文字は中身が空なだけで、オブジェクト自体は存在しているんですね。」

先生

「その通りです。特に条件分岐を使うときは、nullチェックを忘れないようにすると、エラーを防ぎやすくなりますよ。」

生徒

「これからはnullと空文字を適切に使い分けられるように練習します!」

先生

「素晴らしい心がけですね。nullを扱う場面は多いので、しっかり練習してください。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaでnullとは何ですか?初心者にも分かりやすく教えてください。

Javaにおけるnullとは、参照型変数が何も参照していない状態を意味します。つまり、オブジェクトがまだ存在しない、または割り当てられていないことを示す特別な値です。

Javaの空文字とnullの違いは何ですか?

空文字は中身が空の文字列オブジェクトを指し、nullは何も参照していない状態です。空文字は""で表され、nullとは全く異なる動作になります。
JavaSilver試験対策の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク