finalize
에서 클래스 필드를 null
로 설정하는 것은 아무런 의미가 없습니다.
혹시 garbage collector
에게 힌트를 주기 위해서 이런 코드를 작성했다면, 더더욱 불필요합니다.
garbage collector
는 알아서 잘 동작할 것이고, 오히려 garbage collector
에 추가 작업이 발생할 수도 있습니다.
규칙을 어긴 코드
public class Foo {
private String name;
@Override
void finalize() {
name = null; // 규칙을 어긴 코드; 완전 필요 없는 코드
}
}
If you like SONARKUBE, don’t forget to give me a star.