どのクラスのオブジェクト関係の仕事をしますか?

シンディTarhan:

私たちは、クラスのインスタンスを作成するときはどうなりますか?私は、そのクラスのすべてのフィールドとメソッドは、(割り当てられたメモリを使用)、そのオブジェクトの内側になるかではなく、何の内部を持っており、そのクラスへの参照を持っていないだろう、意味します。(最初のオプションは、メモリの無駄のように見えます。)

マイク:

新しいオブジェクトが作成されるたびに、新しいメモリをヒープ領域(ダイナミックメモリ)に割り当てられています。この空間は、クラスのこの単一のインスタンスに固有のすべてのために予約されています。手段すべてのフィールド(例えばフィールドではなく、静的なもの)は、メモリ内の独自の別個の位置を有すること。

彼らはクラスのすべてのインスタンスのために共通しているので、メソッドの場合、物事はあなたがクラスの各インスタンスによって参照されるだろうメモリ内の1つの方法を持っていると思われる手段で、異なっています。
あなたが疑問に思う場合は保存されたメソッドのローカル変数次のとおりです。彼らは、彼らはそのメソッドの呼び出しの間で共有されていないという意味、スタック上に保存されています。

また、方法は「コードメモリ」に格納されている、インスタンスフィールドから分離します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=201216&siteId=1