Cleaner 도 finalizer와 비슷하다 (조금 더 낫다고 함? 스레드를 할당할수있다?)
finalize() -> 객체에 대한 참조가 없어졌을때 가비지 컬렉터에 의해 자동적으로 불려지는 메서드
inner class 를 사용하는 것을 자제한다 - static inner class 로 만들자.
-> 왜냐? inner class 를 사용할 경우 - 만약에 외부 클래스가 참조를 잃어버려 필요가 없어진 상황에서도 inner class 가 외부객체의 참조를 유지하기때문에 계속 메모리 회수가 되지 않은 채로 남게 된다.
심지어 Cleaner 클래스는 system.exit 이 되어 JVM이 메모리에서 내려가야 하는 순간에서도 - 메모리 회수를 보장해주지 않는다...
댓글 없음:
댓글 쓰기