Java には、データを保存できる場所が 6 つあります。
スタック ポインタを介してメモリ を制御します。下に移動すると新しいメモリが割り当てられ、上に移動するとそのメモリが解放されます。したがって、プログラムを作成するとき、Java コンパイラは、単一のスレッドに属するスタック ポインタを上下に移動するための適切なコードを生成する必要があるため、スタックに格納されているすべてのデータの正確なサイズと有効期間を把握している必要があります。各スレッドにはスタック メモリがあり、それが格納する変数は、そのスレッドが属するスレッド内でのみ表示できます。つまり、スタック メモリはスレッドのプライベート メモリとして理解できます。
は、ロードされたクラス情報、定数、静的変数、およびジャストインタイムコンパイラによってコンパイルされたコードを格納するために使用されます。
定数プールはメソッド領域の一部です。
基本概念
Java には、データを保存できる場所が 6 つあります。を制御します。下に移動すると新しいメモリが割り当てられ、上に移動するとそのメモリが解放されます。したがって、プログラムを作成するとき、Java コンパイラは、単一のスレッドに属するスタック ポインタを上下に移動するための適切なコードを生成する必要があるため、スタックに格納されているすべてのデータの正確なサイズと有効期間を把握している必要があります。各スレッドにはスタック メモリがあり、それが格納する変数は、そのスレッドが属するスレッド内でのみ表示できます。つまり、スタック メモリはスレッドのプライベート メモリとして理解できます。
基本的なタイプの変数データ、オブジェクト、または配列への参照を保存します
FILO 先入れ後出しルールがあります。
はヒープであり、すべての Java オブジェクトを格納するために使用されます (RAM にも存在します)。平たく言えば、すべての新しいオブジェクトを保存することを意味します。
ヒープとスタックの違いは、ストレージの割り当てに優れた柔軟性があることですが、時間がかかることです。理由:オブジェクトを作成する必要がある場合は、単純なコード行を記述するだけで済みます。このコード行が実行されると、ストレージがヒープに自動的に割り当てられます。
定数プールはメソッド領域の一部です。
String str="www" などのストレージ文字列定数と基本型変数。実際、「www」は定数プール内にあります。
Java の 8 つの基本型 (Byte、Short、Integer、Long、Character、Boolean、Float、Double) は、Float と Double を除き、他の 6 つの型はすべて定数プールを実装していますが、それらは (-128
上記は「15.Java Basics - Heap & Stack」の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。