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