OutOfMemoryError xảy ra khi JVM không thể cấp phát bộ nhớ cho object mới — heap đã đầy và GC không thể giải phóng đủ.
Nguyên nhân:
- memory leak (object được giữ reference nhưng không dùng).
- data structure quá lớn.
- heap size không đủ. Phòng tránh:
- tăng heap:
-Xmx2048m. - fix leak (tìm và xóa reference thừa).
- tối ưu collection.
- profiling với JProfiler, VisualVM, heap dump.
java.lang.OutOfMemoryError: Java heap spacelà loại thường gặp nhất