Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-为什么没有OutOfMemoryError?_Java_Out Of Memory - Fatal编程技术网

Java-为什么没有OutOfMemoryError?

Java-为什么没有OutOfMemoryError?,java,out-of-memory,Java,Out Of Memory,我试图使用以下代码生成OutOfMemoryError ArrayList容器=新的ArrayList(); while(true){ 整数i=新整数(1); 容器。添加(i); } 应用程序崩溃,但未打印或转储任何内容!这正常吗?我应该向java命令传递一些选项吗?如何强制jvm打印此消息 我这样做是因为我有一个运行在嵌入式系统(使用cvm)上的应用程序,它崩溃时没有任何痕迹。我怀疑内存泄漏,所以我想编写一个导致内存泄漏的代码,看看jvm输出的是什么类型的消息。这就是为什么我在运行时编写了一

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

ArrayList容器=新的ArrayList();
while(true){
整数i=新整数(1);
容器。添加(i);
}

应用程序崩溃,但未打印或转储任何内容!这正常吗?我应该向java命令传递一些选项吗?如何强制jvm打印此消息

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

Elie

我确实得到了

线程“main”java.lang.OutOfMemoryError中出现异常:java堆空间


如果我在整数构造器中放入一些东西。否则,无法编译。

您能解释一下为什么需要这样做吗?如果要测试这个条件,有更好的方法。它甚至可以编译吗?“我不认为Integer没有参数构造函数。”KirkWoll,也许如果他们给出了明确的意图,就可以给出更好的答案。在那之前,这是他们从我那里得到的最好的东西。不需要任何意图。问题很清楚,“应用程序崩溃了,但没有打印或转储任何内容。”没有。应用程序甚至没有编译。您需要学会区分编译错误与运行时错误或异常,以及所有这些错误与崩溃。用
int[]i=new int[10000]
替换
Integer i=new Integer(1)
可能可以更快地实现这一点。好吧,如果您只需要一个OOME,为什么不直接从顶部开始呢
long[]x=new long[Integer.MAX_VALUE]
如果我的问题不完整,很抱歉,但是我当然在构造函数中放了一些东西
ArrayList container = new ArrayList();
while (true) {
    Integer i = new Integer(1);
    container.add(i);
}