私は、Javaのメモリ配置の仕組みを十分に理解しようとしています。インターネット上の議論は非常に混乱し、時には互いに矛盾するので、私は信頼できる人は誰も見つかりませんでした。静的メソッド、静的メソッド、ローカル変数、スレッド、揮発性などが混在すると、このことは非常に複雑になります。だから私は自分自身でJavaコーディング実験をやっていることを勉強できる方法があれば、私は考えています。クラスMemoryTrackはこのような何かをし、Javaでは、変数、メソッド、またはクラスがヒープまたはスタックで作成されたかどうかを追跡する方法はありますか?
public myMethod(){
int i = 0;
MemoryTrack.show(new myClass()); //print out "Heap at address 111"
MemoryTrack.show(new myClass()); //print out "Heap at address 222"
MemoryTrack.show(i); //print out "Stack at address 333"
MemoryTrack.show("a static method"); //print out "stack at address 444"
}
これを回答として投稿してください。 –
いずれにせよ、Javaのポイントの1つは、ヒープ上に何があるのか、何がスタック上にあるのか気にする必要がないということです。実際、JITは通常スタック上に何かが起こる可能性があるヒープ。 –
@Zoltán:done。 - – ignis