"finalize"에서는 필드 값을 null로 변경해선 안됩니다.

 

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. :star2:

원문으로 바로가기

Star This Project