JVM メモリの構造と機能を深く理解するには、具体的なコード例が必要です
public class Person { private String name; private int age; // 构造方法 public Person(String name, int age) { this.name = name; this.age = age; } // Getter和Setter方法 // ... public static void main(String[] args) { Person person = new Person("Alice", 20); System.out.println(person.getName()); // 输出 "Alice" } }
上記のサンプル コードでは、人物オブジェクトを作成し、その名前と年齢属性に値を割り当てます。この Person オブジェクトはヒープ メモリに割り当てられます。ヒープ メモリのサイズは、-Xmx および -Xms コマンド ライン パラメータを通じて調整できます。
public class StackExample { public static void main(String[] args) { int a = 5; int b = 10; int c = 0; c = add(a, b); System.out.println(c); // 输出 "15" } public static int add(int x, int y) { return x + y; } }
上記のサンプルコードでは、main メソッド内で 3 つのローカル変数 a、b、c を定義し、それぞれに値を代入しています。次に、add メソッドを呼び出し、a と b をパラメータとして add メソッドに渡しました。 add メソッドのパラメーター x と y もローカル変数です。 add メソッドでは、x と y を加算し、結果を返します。最後に、main メソッドで c の値 (15) を出力します。
ご覧のとおり、スタックは主にメソッド呼び出しとローカル変数の保存に使用されます。メソッドを入力すると、JVM はメソッド パラメータとローカル変数を保存するためのスタック フレーム スペースをメソッドに自動的に割り当てます。メソッドの実行が完了すると、スタック フレームは破棄されます。
public class MethodAreaExample { private static final String CONSTANT = "Hello, world!"; private static int count = 0; public static void main(String[] args) { System.out.println(CONSTANT); // 输出 "Hello, world!" System.out.println(count); // 输出 "0" count++; System.out.println(count); // 输出 "1" } }
上記のサンプル コードでは、定数 CONSTANT と静的変数 count を定義します。定数と静的変数はメソッド領域に格納されます。 mainメソッドでは定数と静的変数の値をそれぞれ出力し、countの値に1を加算して出力しています。
以上がJVM のメモリ レイアウトと機能の詳細な調査の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。