ホームページ >Java >&#&チュートリアル >Javaスタックとヒープの違いの詳細な紹介
Java スタックとヒープの違い
1. ガベージ コレクション メカニズムはヒープ メモリにのみ作用し、スタック メモリとは関係ありません。
2. スタックのアクセス速度はヒープよりも高速です。ローカル変数とオブジェクト参照値を保存する際に
3、ヒープ: より大きな変数を保存します
4、スタックには非常に重要な特別な機能があります。つまり、スタックに格納されたデータは共有できます
コンパイラーが int を処理するときa = 3 の場合、まず a を作成します。変数は a への参照であり、値 3 がスタックに存在するかどうかを確認します。存在しない場合は 3 を格納します。b = を処理する場合も同様です。 3。3 は以前に格納されているため、この時点でコンパイルします。コンパイラは、作成された b 変数を 3 にポイントするだけで済みます (これはスペースの節約に役立ちます)。
この時、aとbは同時に3を指しますが、使用には影響しません。このとき a = 4; と定義した場合、4 をメモリに格納する必要があり、a は 4 を指します。a の値を変更しても b の値には影響しません。
内存的划分: 1,寄存器。 2,本地方法区。 3,方法区。 4,栈内存。 存储的都是局部变量。 而且变量所属的作用域一旦结束,该变量就自动释放。 5,堆内存。 存储是数组和对象(其实数组就是对象) 凡是new建立在堆中。 特点: 1,每一个实体都有首地址值。 2,堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。整数是0,小数0.0或者0.0f,boolean false char '\u0000' 3,垃圾回收机制。