クラスの初期化ごとに、各クラスがオブジェクト クラスを拡張することを認識しています。これは、JVM がカスタム クラスとクラスのオブジェクトを作成するということObject
ですか? クラスの初期化のこのプロセスを非常に明確に説明できる人はいますか。
編集 :
スーパークラスをサブクラスに拡張すると、このスーパークラスはサブクラスと同じメモリを占有しますか?
クラスの初期化ごとに、各クラスがオブジェクト クラスを拡張することを認識しています。これは、JVM がカスタム クラスとクラスのオブジェクトを作成するということObject
ですか? クラスの初期化のこのプロセスを非常に明確に説明できる人はいますか。
編集 :
スーパークラスをサブクラスに拡張すると、このスーパークラスはサブクラスと同じメモリを占有しますか?
new 演算子を使用するたびに、そのクラスのオブジェクトが作成されます。親クラスの属性については、作成されたオブジェクトの空間内の変数を初期化します。
問題は、このクラスのインスタンスが new で作成されたときではなく、クラスが初期化されたときに何が起こるかということでした。
例えば:
class Foo {
static void bar() { .... }
... // other members
}
このクラスは、 が呼び出されると初期化されます (インスタンス化はされません) Foo.bar()
。
そして、それが起こった場合、Class<Foo>
あなたが通り抜けるのと同じオブジェクトが作成されると思いますFoo.class
。