1

私が理解したように、すべての参照型nullのインスタンスです。TT

問題 1.の定義はnull? はメモリ上でどのようにnull表されますか?

次のケースを考えてみましょう: クラスを定義しました

public class MyClass{
    Integer i;
}

nullにキャストできるようになりましたが、MyClass明示的に定義していません。

質問 2.nullにキャストできるのは、どのコンパイラからわかりMyClassますか?

4

4 に答える 4

2

Java では、変数はオブジェクトへの参照です。したがってnull、値は設定されていない参照 (つまり、何も参照していないこと) を示します。

変数はコンテナ (*) として表示され、その中に特定のタイプのオブジェクトを配置できます。変数が の場合、nullコンテナが空であることを意味します。コンテナーが空になる可能性があることは明らかです (ホストするオブジェクトの種類に関係なく)。何も入れなくても (または中身を削除しても) かまいません。それにもかかわらず、void は任意の型のオブジェクトではなく、コンテナーからコンテンツを取り出したときに残るものです。

(*) コンテナーは参照値の抽象化として適切ではないことは知っていますが、この特定の説明には適していました。

于 2013-10-12T16:45:49.767 に答える