JVM学習(三)——スタックとスタックの違い
1367 ワード
JVMの実行メカニズムを学習する時、実行時のデータメモリはスタックメモリとスタックメモリに分けられる.Thking in Javaを見たとき、スタックメモリには基本的なタイプの変数とオブジェクトの参照が格納されていたことを覚えています.スタックメモリに格納されているのはオブジェクトです.
ヒープメモリ
Javaのオブジェクトと配列を格納する役割を果たし、newのオブジェクトまたは配列を作成すると、スタックメモリにスペースを開き、格納します.
スタックメモリの特徴
1.スタックはキューと見なすことができ、先に出て、後進後出
2.スタックはメモリサイズを動的に割り当てることができ、生存期間もコンパイラに事前に教える必要はありません.なぜなら、その実行時にメモリを動的に割り当てるからです.
3.運転時に動的にメモリを割り当て、アクセス速度が遅い
Newオブジェクトのスタックへの割り当て
JVMの自動辛鶏回収器で管理
スタックメモリ
スタックメモリはJavaの別のメモリで、主にプログラムを実行するために使用されます.たとえば、基本タイプの変数やオブジェクトの参照変数などです.
スタックメモリの特徴
1.先進後出、後進先出2.アクセス速度はスタックより速く、レジスタに次ぐ.スタックデータは共有可能である.スタックに存在するデータサイズと生存サイクルは決定され、柔軟性に欠けています.
スタックメモリ割り当てメカニズム
スタックメモリは一級キャッシュと呼ばれ、ゴミ回収器によって自動的に回収される.
データ共有
1.コンパイラ処理int a=3;aの参照を作成します.スタックで3という値があるかどうかを検索します.なければ3を格納し、aは3を指す.
2.処理int b=3;bの参照を作成する.スタックに3が見つかり、直接値を割り当てました.
3.a=4の場合aを4に向ける.
スタックとスタックの違い
JVMはスタックベースの仮想マシンである.JVMは新しく作成したスレッドごとにスタックを割り当てる.つまり、Javaプログラムでは、スタックの操作によって実行されます.スタックは、スレッドの状態をフレーム単位で保存します.JVMはスタックに対してただ2種類の操作を行います:フレームの単位の圧力のスタックと出てスタックの操作をします
差異
1.スタックメモリはnewによって作成されたオブジェクトと配列を格納するために使用されます.2.スタックメモリは、メソッドやローカル変数などを格納ために使用する.山は先に出て、後に入ってから出ます.スタックは後進先出で,先進後出である
同じ
1.いずれもJavaメモリの一種である.システムは自動的に回収しますが、スタックメモリの一般的な開発者は自動的に回収します.
出典:http://blog.csdn.net/u011546655/article/details/52170470
ヒープメモリ
Javaのオブジェクトと配列を格納する役割を果たし、newのオブジェクトまたは配列を作成すると、スタックメモリにスペースを開き、格納します.
スタックメモリの特徴
1.スタックはキューと見なすことができ、先に出て、後進後出
2.スタックはメモリサイズを動的に割り当てることができ、生存期間もコンパイラに事前に教える必要はありません.なぜなら、その実行時にメモリを動的に割り当てるからです.
3.運転時に動的にメモリを割り当て、アクセス速度が遅い
Newオブジェクトのスタックへの割り当て
JVMの自動辛鶏回収器で管理
スタックメモリ
スタックメモリはJavaの別のメモリで、主にプログラムを実行するために使用されます.たとえば、基本タイプの変数やオブジェクトの参照変数などです.
スタックメモリの特徴
1.先進後出、後進先出2.アクセス速度はスタックより速く、レジスタに次ぐ.スタックデータは共有可能である.スタックに存在するデータサイズと生存サイクルは決定され、柔軟性に欠けています.
スタックメモリ割り当てメカニズム
スタックメモリは一級キャッシュと呼ばれ、ゴミ回収器によって自動的に回収される.
データ共有
int a = 3;
int b = 3;
1.コンパイラ処理int a=3;aの参照を作成します.スタックで3という値があるかどうかを検索します.なければ3を格納し、aは3を指す.
2.処理int b=3;bの参照を作成する.スタックに3が見つかり、直接値を割り当てました.
3.a=4の場合aを4に向ける.
スタックとスタックの違い
JVMはスタックベースの仮想マシンである.JVMは新しく作成したスレッドごとにスタックを割り当てる.つまり、Javaプログラムでは、スタックの操作によって実行されます.スタックは、スレッドの状態をフレーム単位で保存します.JVMはスタックに対してただ2種類の操作を行います:フレームの単位の圧力のスタックと出てスタックの操作をします
差異
1.スタックメモリはnewによって作成されたオブジェクトと配列を格納するために使用されます.2.スタックメモリは、メソッドやローカル変数などを格納ために使用する.山は先に出て、後に入ってから出ます.スタックは後進先出で,先進後出である
同じ
1.いずれもJavaメモリの一種である.システムは自動的に回収しますが、スタックメモリの一般的な開発者は自動的に回収します.
出典:http://blog.csdn.net/u011546655/article/details/52170470