Javaのメモリモデル - スタックとヒープの違い

差分:メモリ割り当て戦略(三種類)

  1. スタティックメモリは:ランタイムコンパイル時に各データオブジェクトのためのストレージスペース要件を決定します。コンパイル時に固定された空間の割り当ては、それが再帰的/ネストされたコードを許可していません。
  2. スタックストレージ:データ領域のニーズは、コンパイル時間が不明である、実行 -timeモジュールは、入口の大きさを決定します。
  3. ストレージスタック:コンパイル時または実行時に、モジュールは、入口のサイズを決定することができない、ダイナミックアロケーション。例えば:可変長文字列またはオブジェクト・インスタンス

両者の差:

  1. 管理:ヒープはGCに必要な、スタックは自動的に解除されます
  2. スペース:ヒープ>スタック
  3. 関連の破片:フラグメントが生成されたスタック、ヒープの断片化よりもはるかに少ない生成しました
  4. 割当:スタックは、静的/動的割り当てをサポートしています。ヒープは、動的割り当てをサポートしています
  5. 効率性:効率スタック>ヒープ効率

おすすめ

転載: www.cnblogs.com/starstarstar/p/11234333.html