Eclipse имеет хороший анализатор дампа памяти; но обнаружение утечки памяти может быть очень сложной задачей и требует от вас глубокого погружения в то, как объекты распределяются вашим приложением.
Мне потребовалось 2 полных дня, чтобы понять, что один из моих пользовательских классов редактора ячеек JTable выделял JDialog при создании экземпляра, фактически не открывая его, а собственная часть диалога сохраняла экземпляр редактора ячеек заблокированным, таким образом, таблица , таким образом, экран и, следовательно, все объекты сущностей, которые были связаны с ним.