ヒープとスタックの違い

共通点:それらはすべて記憶の一部です。

違い

  ヒープ:ヒープはランタイムデータ領域であり、通常はNEWで割り当てられます。領域は手動で適用されて解放され(Object a = new Object())、ガベージコレクターによって破棄されます。たとえば、プログラマはmalloc(10)を定義し、10バイトのスペースを開くようにカスタマイズします。ヒープ領域は、プログラマーが手動で解放する必要があります。そうしないと、いつでもアクセスできるため、解放し忘れると、メモリリークが発生しやすくなります。

 

 

 

 

 

  スタック:スタックには主に、基本的なデータ型のいくつかの変数(バイト、ショート、整数、ロング、フロート、ダブル、ブール、文字)が格納されます。これはオブジェクトの宣言と同等であり、オペレーティングシステムによってスペースが自動的に割り当てられ、解放されます(オブジェクトa = null);後入れ先出し。たとえば、char aを定義すると、システムは自動的にスタック上のスペースを開き、スタックデータを共有できます。スタックのスペースは自己生成されるため、一般的な実行終了サイクルも終了し、再びアクセスすることはできません。

 

 

 

 

 

例:

 

 

先輩の例えを引用すると
  、スタックを使用することは、レストランに行き、注文する(アプリケーションを発行する)、支払い、そして食べる(使用する)だけで、満腹のときに立ち去り、切断、洗浄、その他の準備に注意を払う必要がないようなものです食器洗いや鍋磨きなどのしっぽ洗い作業で、長所は早いが自由度は小さい。
  ヒープを使うことは、自分の好きな料理を作るようなもので、面倒ですが、自分の好みに合わせて自由度が増します。

おすすめ

転載: www.cnblogs.com/Tibbers/p/12707633.html