我需要为了测试目的而故意创建一个内存不足的实例。有谁知道最快的方法吗?
答案 0 :(得分:14)
取决于你想做什么,但这应该足够了:
double[] d = new double[Integer.MAX_VALUE];
答案 1 :(得分:1)
import java.util.ArrayList;
class TestOome {
public static void main(String[] args) {
long start = System.currentTimeMillis();
byte[] buffer = new byte[2^20];
ArrayList<String> list = new ArrayList<String>();
try {
while (true) {
list.add("Lollygobblenlissbomb");
}
} catch (Throwable t) {
long end = System.currentTimeMillis();
buffer = null;
System.err.println(t + " in " + (end-start) + " millis.");
}
}
}
java.lang.OutOfMemoryError: Java heap space in 1152 millis.
Press any key to continue . . .
答案 2 :(得分:0)
运行一个递归函数,调用自身时没有base / anchor case。每个递归调用都会创建一个堆栈。所以这应该很快。