Javaメモリに複数の状況を割り当てる用法解析
この文章は主にJavaメモリに複数の状況を割り当てる用法解析を紹介しています。例コードで紹介された非常に詳細で、皆さんの学習や仕事に対して一定の参考学習価値があります。必要な友達は下記を参考にしてください。
Javaメモリの5つのエリア
スタック:関数内部の局所変数を保存します。関数イメージは、作用領域を超えたら削除されます。
ヒープ:newで出てくるものは全部ヒープに保管しています。可変対象(基本データタイプではない)は全部この中に保存されているとも言えます。
中のものは全部メモリがあります。スタックに保存されているのはこの16進のメモリ値です。
ヒープの中に保管されているものは全部標準値を使います。
整数:標準値0
浮動小数点数:デフォルト0.0
ブール:デフォルトのfalse
文字:デフォルト'\u 0000'
引用:デフォルトnull
ローカル方法スタック:オペレーティングシステムと関係があります。
メソッドエリア:ストレージ.クラスに関する情報、方法を含む情報
レジスター:CPU関連
積み上げられているのは対象です。スタックに保存されているのは、基本的なデータタイプとスタックのオブジェクトの参照です。1つのオブジェクトのサイズは推定できない、または動的に変化することができるが、スタックでは、1つのオブジェクトは1つの4 btyeの参照のみに対応している(スタック分離の利点:)。
なぜ基本タイプを積まないですか?その占有空間は普通は1~8バイトです。スペースが少ないし、基本タイプですから、ダイナミックな成長が現れない場合――長さが固定されています。だから、スタックの中に保管すれば十分です。彼をヒープに入れても意味がないです。このように、基本タイプと対象の参照は、いずれもスタックに格納されており、しかもいくつかのバイトの一つの数であるため、プログラムが実行される場合、彼らの処理は統一されている。
参照データの種類はサイズが固定されていないため、スタックメモリの中に保存されているのはメモリのアドレスで、毎回値を読み込む時、スタックメモリの中のメモリアドレスを探して、メモリアドレスを通じて、スタックメモリの中の対応するオブジェクトを見つけます。
スタックメモリとスタックメモリの関係図
ヒープ:プログラマはオペレーティングシステムにメモリを申請し、システムがプログラムの申請を受けると、空きメモリアドレスを記録するリンク表を巡回して、最初の空間が申請した空間より大きいものを探して、その結点を空きノードチェーンから削除して、その結点の空間をプログラムに割り当てます。割り当ての速度が遅く、住所が不連続で、断片化しやすい。また、プログラマが申請し、同時にプログラマーが廃棄を担当しなければならない。そうでないとメモリが漏れてしまう。
スタック:プログラムから自動的にオペレーティングシステムに振り分けと回収を申請して、スピードが速くて、使いやすいですが、プログラマは制御できません。割り当てが失敗したら、スタックにエラーが発生します。const局所変数もスタック領域に格納され、スタック領域はアドレス減少の方向に成長することに留意されたい。
メモリ漏れ:メモリの空き領域を申請しましたが、使用後はリリースしなくても大丈夫です。プログラムの実行時間が長いほどメモリを使って、最終的にすべてのメモリを使い果たして、システム全体が崩壊します。プログラムによって申請されたメモリの一部が、どのポインタも指していないので、このメモリが漏れてしまいます。
メモリ漏れの解決方法:良好なコード習慣で、メモリ割り当ての関数を使っています。使用が終わったら、その相応の関数を使って釈放してください。mallocとdeleteを組み合わせて使います。newとfreeを組み合わせて使います。
オブジェクトを呼び出し、メモリ割り当て状況
二つのオブジェクトを呼び出し、メモリ割り当て状況
オブジェクトを返す値として
static変数
引き継ぐ
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
Javaメモリの5つのエリア
スタック:関数内部の局所変数を保存します。関数イメージは、作用領域を超えたら削除されます。
ヒープ:newで出てくるものは全部ヒープに保管しています。可変対象(基本データタイプではない)は全部この中に保存されているとも言えます。
中のものは全部メモリがあります。スタックに保存されているのはこの16進のメモリ値です。
ヒープの中に保管されているものは全部標準値を使います。
整数:標準値0
浮動小数点数:デフォルト0.0
ブール:デフォルトのfalse
文字:デフォルト'\u 0000'
引用:デフォルトnull
ローカル方法スタック:オペレーティングシステムと関係があります。
メソッドエリア:ストレージ.クラスに関する情報、方法を含む情報
レジスター:CPU関連
積み上げられているのは対象です。スタックに保存されているのは、基本的なデータタイプとスタックのオブジェクトの参照です。1つのオブジェクトのサイズは推定できない、または動的に変化することができるが、スタックでは、1つのオブジェクトは1つの4 btyeの参照のみに対応している(スタック分離の利点:)。
なぜ基本タイプを積まないですか?その占有空間は普通は1~8バイトです。スペースが少ないし、基本タイプですから、ダイナミックな成長が現れない場合――長さが固定されています。だから、スタックの中に保管すれば十分です。彼をヒープに入れても意味がないです。このように、基本タイプと対象の参照は、いずれもスタックに格納されており、しかもいくつかのバイトの一つの数であるため、プログラムが実行される場合、彼らの処理は統一されている。
参照データの種類はサイズが固定されていないため、スタックメモリの中に保存されているのはメモリのアドレスで、毎回値を読み込む時、スタックメモリの中のメモリアドレスを探して、メモリアドレスを通じて、スタックメモリの中の対応するオブジェクトを見つけます。
スタックメモリとスタックメモリの関係図
ヒープ:プログラマはオペレーティングシステムにメモリを申請し、システムがプログラムの申請を受けると、空きメモリアドレスを記録するリンク表を巡回して、最初の空間が申請した空間より大きいものを探して、その結点を空きノードチェーンから削除して、その結点の空間をプログラムに割り当てます。割り当ての速度が遅く、住所が不連続で、断片化しやすい。また、プログラマが申請し、同時にプログラマーが廃棄を担当しなければならない。そうでないとメモリが漏れてしまう。
スタック:プログラムから自動的にオペレーティングシステムに振り分けと回収を申請して、スピードが速くて、使いやすいですが、プログラマは制御できません。割り当てが失敗したら、スタックにエラーが発生します。const局所変数もスタック領域に格納され、スタック領域はアドレス減少の方向に成長することに留意されたい。
メモリ漏れ:メモリの空き領域を申請しましたが、使用後はリリースしなくても大丈夫です。プログラムの実行時間が長いほどメモリを使って、最終的にすべてのメモリを使い果たして、システム全体が崩壊します。プログラムによって申請されたメモリの一部が、どのポインタも指していないので、このメモリが漏れてしまいます。
メモリ漏れの解決方法:良好なコード習慣で、メモリ割り当ての関数を使っています。使用が終わったら、その相応の関数を使って釈放してください。mallocとdeleteを組み合わせて使います。newとfreeを組み合わせて使います。
オブジェクトを呼び出し、メモリ割り当て状況
二つのオブジェクトを呼び出し、メモリ割り当て状況
オブジェクトを返す値として
static変数
引き継ぐ
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。