私は現在、java、スタック、ヒープのメモリの概念を学んでいますが、ローカル変数とメソッド呼び出しはスタックと呼ばれる場所に住んでいました。オブジェクトはヒープ内に存在します。そのローカル変数がオブジェクトを保持している場合はどうなりますか?またはオブジェクト参照を持っていますか?Javaローカル変数、オブジェクト参照、インスタンス変数はどこにありますか
public void Something(){
Duck d = new Duck(24);
}
まだスタック内には存在しますか?インスタンス変数はどこにありますか?できるだけシンプルにしてください。ありがとうございました。
は、オブジェクト内に割り当てられていますか?またはヒープのソロのように? – KyelJmD
オブジェクトがインスタンス変数として作成されても、それでもエスケープ解析に該当する場合はどうなりますか? – KyelJmD
メモリ内のオブジェクトのレイアウトは次のようになります:8バイトのヘッダ、次に属性。インスタンス変数がプリミティブではなくオブジェクトである場合、ポインタのみが連続したメモリブロックに格納され、オブジェクトは他の場所に割り当てられます。 – socha23