nullとemptyの違いとは?分かりやすく解説!

この記事には、アフィリエイト広告を利用しています。

スポンサーリンク


nullとemptyの主な違いは、nullは何もないことを示すのに使われ、emptyは長さがゼロの一意の文字列を示すのに使われることです。

文字列は、文字の並びを指します。

例えば、“programming “はStringの一種です

Javaプログラミング言語はStringをサポートしており、それらはオブジェクトとして扱われます。

Stringクラスはイミュータブル(不変)です。

したがって、オブジェクトを作成した後、それを変更することはできません。

文字列は、NULLや空になることがあります。

String変数にNullが代入された場合、その変数が実際にはヒープ上のどのメモリ位置も参照していないことを示します。

しかし、String変数に空のStringが代入された場合、その参照変数は長さゼロの文字列のメモリ位置を参照していることを示します。

スポンサーリンク

What is null


Nullは何もないことを意味します

以下の2つの文をご覧ください。

s1 は String 変数です。

この変数には、nullが代入されています。

String s1 = null; というステートメントは、String s1; と同じ意味で、String s1の長さを表示するときに、ヌルポインター例外を発生させます。

これは、s1が長さを数えるための実際の文字列を参照していないためです。

What is empty

長さのない文字列を指します。

以下のコードを参照してください。

Main Difference -  null vs empty 図2: 空文字列を含むプログラム

s2 は文字列変数です。

この変数には、空の文字列である「」が代入されます。

そのため、JVMは空の文字列のためのメモリ領域を確保し、s2はその空の文字列を参照することになります。

これは、s1がStringを指しているが、長さを数えるための文字を持っていないためです。

ヌルとエンプティの違い

定義

nullはオブジェクトがヒープ内の何も参照していないことを示す用語であり、empty はオブジェクトがヒープ内の長さ0の一意の文字列を参照していることを示す用語です。

構文

文字列 s1= null; または文字列 s1; は、s1 が何もないか null を参照していることを表します。

文字列 s2= “”; は、s2 が空の文字列を参照していることを表します。

長さ

ヌル文字列の長さを表示すると、ヌルポインタ例外が発生します。

空の文字列の長さを表示すると、0が表示されます。

結論

文字列とは、文字の並びのことです。

文字列は、NULLや空になることもあります。

nullとemptyの違いは、nullは何もないことを示すのに使われ、emptyは長さがゼロの一意の文字列を示すのに使われることである

タイトルとURLをコピーしました