Memory leak trong Java: object vẫn còn reference nhưng không còn cần thiết nữa, ngăn GC thu hồi. GC không thể collect object còn được tham chiếu dù không dùng.
Ví dụ: static List list = new ArrayList(); list.add(obj); nếu list không bao giờ được clear, tất cả object tích lũy mãi. Nguyên nhân phổ biến: unclosed resources (file handle, DB connection), listener không unregister, static collection tích lũy. Phòng tránh: dùng try-with-resources, unregister listener, xóa object khỏi collection khi không dùng.