对于
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都在附近,似乎堆栈增长太快了.我尝试研究这部分代码,并怀疑它是多次调用此函数时是否是问题的原因.如果堆被堆上的某些变量引用,堆栈是否可能被清除?