Javaスタックとヒープの違い
1.ごみ収集メカニズムは、ヒープメモリにのみ作用し、スタックメモリとは何の関係もありません。
2。スタック:スタックはヒープよりもアクセスが速く、ローカル変数とオブジェクトの参照値を保存する効率が高くなります。
3。ヒープ:より大きな変数を保存します
4.スタックには非常に重要な特別な機能があります。つまり、スタックに存在するデータを共有できます。
コンパイラがint a = 3を処理すると、最初にスタック内の変数Aへの参照を作成し、次にスタックに値3が存在するかどうかを調べます。存在しない場合、3は保存されます。
3が前に保存されていたため、B = 3を処理する場合も同じことが言えます。そのため、コンパイラは作成された変数を3に指す必要があります(これはスペースを節約するのに役立ちます)。
この時点で、AとBは同時に3を指していますが、それらの使用には影響しません。 a = 4の場合;この時点で定義されている場合、4はメモリに保存する必要があり、Aから4を指し、値の変更は値bに影響しません。
メモリ分割:1、登録。 2。ローカルメソッド領域。 3。メソッド領域。 4。スタックメモリ。すべて保存されたローカル変数。さらに、変数が属するスコープが終了すると、変数は自動的にリリースされます。 5。ヒープメモリ。ストレージは配列とオブジェクトです(実際、配列はオブジェクトです)。新しいものはヒープに組み込まれています。機能:1。各エンティティにはホームアドレス値があります。 2。ヒープメモリの各変数にはデフォルトの初期化値があり、これはタイプによって異なります。整数は0、10進数0.0または0.0F、ブールfalse char '/u0000' 3、ガベージ収集メカニズムです。
読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!