私が理解したように、すべての参照型null
のインスタンスです。T
T
問題 1.の定義はnull
? はメモリ上でどのようにnull
表されますか?
次のケースを考えてみましょう: クラスを定義しました
public class MyClass{
Integer i;
}
null
にキャストできるようになりましたが、MyClass
明示的に定義していません。
質問 2.null
にキャストできるのは、どのコンパイラからわかりMyClass
ますか?
Java では、変数はオブジェクトへの参照です。したがってnull
、値は設定されていない参照 (つまり、何も参照していないこと) を示します。
変数はコンテナ (*) として表示され、その中に特定のタイプのオブジェクトを配置できます。変数が の場合、null
コンテナが空であることを意味します。コンテナーが空になる可能性があることは明らかです (ホストするオブジェクトの種類に関係なく)。何も入れなくても (または中身を削除しても) かまいません。それにもかかわらず、void は任意の型のオブジェクトではなく、コンテナーからコンテンツを取り出したときに残るものです。
(*) コンテナーは参照値の抽象化として適切ではないことは知っていますが、この特定の説明には適していました。