Проблемы с памятью в Java?
Есть такой тул jvisualvm, он лежит в $java_home$/bin.

Позволяет помониторить как именно выделяется память. Подробная инструкция к нему есть а сайте оракла, гуглится по visualvm.
1. Что собой представляет класс Aim? Если каждый экземпляр занимает больше ~40 байт, неудивительно, что массив на 84^4 элементов не помещается в 2 ГБ.
2. Какое исключение Вы пробовали ловить? OutOfMemoryException (которое бывает по разным причинам) не является потомком java.lang.Exception.