[아이템8] finalizer를 사용한 클래스는 finalizer 공격에 노출되어 심각한 보안 문제를 일으킬 수도 있다.
finalizer는 정적 필드에 자신의 참조를 할당하여 가비지 컬렉터가 수집하지 못하게 막을 수 있다.public class Zombie { static Zombie zombie; public void finalize() { zombie = this; }}객체 생성을 막으려면 생성자에서 예외를 던지는 것만으로 충분하지만 finalizer 있다면 그렇지도 않다.public class Zombie2 { static Zombie2 zombie; int value; public Zombie2(int value) { if(value vlaue 값에 대한 유효성 검사가 있지만 finalizer로 인해 무효화
2024.07.01