您的位置:首页 > 其它

关于PreparedStatement插入Date类型值的方法

2011-02-23 17:32 357 查看

诡异的JVM Crash之EXCEPTION_STACK_OVERFLOW

关于JVM的一个常识是:如果对象被意外地持有很容易造成内存泄漏,而如果同时又在不停地生成新对象,就有很大的机率造成内存溢出。通常情况下,这种溢出会导致JVM抛出OutOfMemoryError,然后JVM挂起。
可是来试试下面的代码,真是让人有点诧异,分别在JDK1.4、JDK5、JDK6上都表现一致。
package crash;
public class JVMCrashTest {

public static void main(String[] args) {
try {
testCrash();
} catch (Throwable t) {
t.printStackTrace();
System.out.println("catch an exception! I'm dead!");
}
}

/**
* JVM挂掉,core dump
*/
static void testCrash() {
Object[] o = null;
int line = 0;
while (true) {
o = new Object[] { o };
line++;
if (line % 1000 == 0) {
System.out.println(line);
}
}
}

}
没有机会抓异常,JVM直接Crash。Windows上会有hs_err日志产生,好一个EXCEPTION_STACK_OVERFLOW。Linux上面连日志都没有,直接segment fault。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: