Если вы видите нехватку памяти, подумайте, возможно ли это: действительно ли вам нужно столько памяти? Если нет (то есть, когда у вас нет огромных объектов и по какой-то причине вам не нужно создавать миллионы объектов), есть вероятность, что у вас утечка памяти.
В Java это означает, что вы храните ссылку на объект где-то, даже если он вам больше не нужен. Распространенными причинами этого являются забывчивость вызова close () для ресурсов (файлов, соединений с БД, операторов и наборов результатов и т. Д.).
Если вы подозреваете утечку памяти, используйте профилировщик, чтобы определить, какой объект занимает всю доступную память.