Nemrég volt egy kalandom egy alkalmazással, ahol több MB-os json-t töltöttek be objektumba a beépített megoldással, hogy abból kiszedjék az adatokat és adatbázisba tegyék. Remek out of memory error-ral köszönte meg a rendszer ezt. A megoldás egy olyan parser használata lett, ami stream-két átadott adatokból szépen folyamatában ki tudta szedni az adatokat. A bazi nagy objektummal 60-80MB-ot evett, a tokeneken végigmászó parserrel viszont 6MB körül maradt a fogyasztás.
Az persze igaz, hogy out of memory-t nem fog meg semmi egy programban.
Ahogy írják a neten elvileg az figyelhető, hogy mennyi memória használható. Szóval, ha nem koppig akarod tolni, hanem okosan, addig, amennyi hely van, úgy talán lehet kezdeni valamit.
http://stackoverflow.com/questions/12807797/java-get-available-memory