The biggest competitor to the Java virtual machine might be Microsoft's CLR that hosts languages such as C#. The CLR allows to write unsafe code as an entry...
Java is a safe programming language and prevents programmer from doing a lot of stupid mistakes, most of which based on memory management. But, there …
What made the difference was having the Component class' "finalize()" method explicitly call "flush()" on its BufferedImage before nulling it out. Once this was done, the verbose output from the GC confirmed that the BufferedImage's memory was being reclaimed and the OutOfMemoryException stopped.
J. Hellings, G. Fletcher, and H. Haverkort. Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data, page 553--564. New York, NY, USA, ACM, (2012)c++ sourcecode at: http://jhellings.nl/projects/exbisim/.