ホームページ  >  記事  >  Java  >  Java ヒープとは何ですか?

Java ヒープとは何ですか?

青灯夜游
青灯夜游オリジナル
2019-12-26 15:52:163970ブラウズ

Java ヒープとは何ですか?

ほとんどのアプリケーションでは、Java ヒープ (Java ヒープ) は、Java 仮想マシンによって管理される最大のメモリ部分です。 Java ヒープはすべてのスレッドによって共有されるメモリ領域であり、仮想マシンの起動時に作成されます。このメモリ領域の唯一の目的はオブジェクト インスタンスを保存することであり、ほとんどすべてのオブジェクト インスタンスがここにメモリを割り当てます。これは Java 仮想マシンの仕様で次のように説明されています: すべてのオブジェクト インスタンスと配列はペアにメモリを割り当てる必要がありますが、JIT コンパイラの開発とエスケープ解析テクノロジ、オンスタック割り当てテクノロジ、およびスカラー置換最適化テクノロジの段階的な成熟により、これにより、いくつかの微妙な変更が発生し、ヒープ上に割り当てられたすべてのオブジェクトが徐々に「絶対的」ではなくなります。

Java ヒープは、ガベージ コレクターによって管理される主要な領域であるため、「GC ヒープ」 (ガベージ コレクション ヒープ) と呼ばれることがよくあります。メモリのリサイクルの観点から見ると、カレント コレクタは基本的に世代別コレクション アルゴリズムを使用するため、Java ヒープも新世代と旧世代に細分することができ、さらに詳しくは、Eden 空間、From Survivor 空間、To Survivor 空間などがあります。メモリ割り当ての観点から、スレッド共有 Java ヒープは複数のスレッドプライベート割り当てバッファに分割される場合があります。ただし、どれだけ分割しても、格納内容には関係ありません。どの領域に分割しても、オブジェクト インスタンスは格納されます。さらに分割する目的は、メモリの再利用を改善したり、メモリの割り当てを高速化することです。

Java 仮想マシン仕様によると、Java ヒープは、ディスク領域と同様に、論理的に連続している限り、物理的に不連続なメモリ領域に存在することができます。実装時には、固定サイズまたは拡張可能にすることができますが、現在主流の仮想マシンはすべてスケーラブルとして実装されています。インスタンスの割り当てを完了するためのメモリがヒープ内になく、ヒープを拡張できない場合は、OutOfMemoryError 例外がスローされます。

概要

1. Java ヒープは、Java 仮想マシンによって管理される最大のメモリ部分です

2. Java ヒープすべてのスレッドで使用されます。共有

#3. Java ヒープの主な機能は、オブジェクト インスタンスを保存することです

#4. ava ヒープは、ガベージ コレクターによって管理されるメイン領域です

5. コレクターは基本的に世代別収集アルゴリズムを使用します

6. Java ヒープは新世代と旧世代に分けることができますが、さらに詳しくは Eden 領域、From Surivor 領域、および生存者向けエリア

推奨学習:

JavaVideoTutorial

以上がJava ヒープとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。