in my unit test I deliberately trying to raise an OutOfMemoryError exception. I use a simple statement like the following:
byte[] block = new byte[128 * 1024
If you just want to consume all the memory do the following:
try { List<Object> tempList = new ArrayList<Object>(); while (true) { tempList.add(new byte[128 * 1024 * 1024 * 1024]); } } catch (OutOfMemoryError OME) { // OK, Garbage Collector will have run now... }