Java 関数内のステートメントの場合:
Xxx xxx = new Xxx() {
public Abc abc(final Writer out) {
return new SomeFunction(out) {
boolean isDone = false;
public void start(final String name) {
/* blah blah blah */
}
};
}
};
関数を含め、どの変数がヒープに配置され、どの変数がスタックに配置されますか?
私がこれを尋ねている理由は、JVM のセグメンテーション違反です。
kernel: java[14209]: segfault at 00002aab04685ff8 rip 00002aaab308e4d0 rsp 00002aab04685ff0 error 6
00002aab04685ff8
近くに00002aab04685ff0
ある場合、スタックの成長が速すぎるようです。コードのこの部分を調査しようとしましたが、この関数を何度も呼び出すと問題が発生する原因になるのではないかと疑っています。ヒープ上のいくつかの変数によって参照されている場合、スタックがクリアされない可能性はありますか?