일반적으로 java에서는 c, c++에서와 달리 따로 메모리를 해제해주지 않는다고 하더라도 자동적으로 메모리를 해제해준다.
하지만 stack과 같이 memory allocation이 해야하는 일이 많아지거나 하는 경우 성능 저하를 일으키거나 메모리 요구량이 증가할 수 있음.
극단적인 경우 disk paging 혹은 outofmemoryError가 발생하면 프로그램이 강제 종류 될 수 있음.
객체를 null로 만드는 것이 가장 쉬운 방법
but, 프로그램이 난잡해질 수 있기 때문에 예외적인 조치를 하는 것이 좋음.
따라서 변수의 유효 범위를 최대한 좁게 만들면 해결 가능.
일반적으로, 자체적인 메모리 관리를 하는 클래스의 경우 memory leak이 발생하지 않도록 주의 필요.
cache의 경우에도 Memory leak이 흔하게 발생하는 장소.
listener등 callback이 많이 일어나는 곳도 memory leak이 자주 발생하는 곳.
'More Programmings > Effective Java' 카테고리의 다른 글
규칙 8. equals를 재정의할 때는 일반 규약을 따르라 (0) | 2017.12.19 |
---|---|
규칙 7. 종료자 사용을 피하라. (0) | 2017.10.09 |
규칙5. 불필요한 객체는 만들지 말라 (0) | 2017.10.09 |
규칙 4. 객체 생성을 막을 때는 private 생성자를 사용하라 (0) | 2017.08.31 |
규칙 3. private 생성자나 enum 자료형은 싱글턴 패턴을 따르도록 설계하라. (0) | 2017.08.31 |