Java - 为什么没有OutOfMemoryError?

eli*_*lie -2 java out-of-memory

我试图使用以下代码生成OutOfMemoryError

ArrayList container = new ArrayList();

while (true){
    Integer i = new Integer(1);
    container.add(i);
}
Run Code Online (Sandbox Code Playgroud)

应用程序崩溃但没有打印或转储!这是正常的吗?我应该将一些选项传递给java命令吗?如何强制jvm打印出这条消息?

我这样做是因为我有一个在嵌入式系统上运行的应用程序(使用cvm)崩溃而没有任何痕迹.我怀疑内存泄漏,所以我想编写一个导致内存泄漏的代码,看看jvm输出的是什么类型的消息.这就是为什么我在运行它时写了那个代码,它崩溃但没有给出跟踪,这就是我发布这个问题的原因

埃利

eva*_*ong 6

我确实得到了

线程"main"中的异常java.lang.OutOfMemoryError:Java堆空间

ArrayList container = new ArrayList();
while (true) {
    Integer i = new Integer(1);
    container.add(i);
}
Run Code Online (Sandbox Code Playgroud)

如果我在Integer构造函数中放入一些东西.否则,无法编译.

  • 好吧,如果你只需要OOME,为什么不直接拍顶?`long [] x = new long [Integer.MAX_VALUE]` (2认同)