また、オブジェクトをヒープ上に作成できるがスタック上には作成できないようにクラスを定義できますか?
2 に答える
0
スタックにはプリミティブ型のみが存在し、ヒープ上に複合型(オブジェクト)が作成され、スタック上のプリミティブポインターによって参照されることを理解しています。また、スタック値はスコープから外れるとすぐに削除されますが、ヒープに割り当てられたオブジェクトは元のスコープを超えて存続し、最終的にガベージコレクションされます。
私の考えでは、オブジェクトはスタック上にまったく作成されません。ヒープに割り当てられたオブジェクトへのポインターは、スタック上に作成されます。したがって、重要な何か(常に可能性があります!)を見逃していない限り、2番目の質問に対する答えは、クラスとそのすべての内部オブジェクトが、何をしてもヒープ上に作成されるということです。スタックに存在するのは、ヒープ上のオブジェクトの場所への参照ポインターだけです。
于 2012-12-30T15:47:08.653 に答える
0
■インスタンス変数とオブジェクトはヒープ上に存在します。
■ローカル変数はスタック上に存在します。
于 2015-09-03T16:57:56.917 に答える