Skip to content

아이템 8. finalizer와 cleaner 사용을 피하라 #22

Discussion options

You must be logged in to vote

@chikeem90 님이 말씀해 주신대로 해석에 오류가 있을 수 있다고 판단 되어서 작게나마 정리해 봅니다.

  • 객체가 필요 없어진 시점 - finalizer(또는 cleaner)가 실행되는 시점까지 얼마나 소요될지 예측이 어렵다.
  • GC의 효율을 떨어트리게 되므로 객체 생성, 소멸 시간이 많게는 수백배까지 차이가 날 수 있다.
  • GC의 효율이 떨어지게 되는 이유로는 finalize() 를 메서드를 강제하게 된다면 GC의 객체 수거 알고리즘이 어긋날 수 있다는 생각이 듭니다.
  • (6) ⭐️ JVM에는 가비지 컬렉터의 프로세스를 가지고 있고 GC 호출에 대해 더 잘 알고있다.
  • GC 프로세스를 건드리게 되는것이 바로 finalize() 를 오버라이드 하게되는 경우라고 판단이 됩니다. 그리고 과연 객체 수거 시점을 보장할 수 없는 해당 메서드의 행위가 가비지 컬렉터의 프로세스가 동작하는 방식보다 빠르다는 것을 보장 할 수 없다 정도로 이해 했습니다.

Replies: 2 comments 3 replies

Comment options

You must be logged in to vote
3 replies
@chikeem90
Comment options

@chikeem90
Comment options

@Irisation23
Comment options

Answer selected by Irisation23
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2장 객체 생성과 파괴 이펙티브 자바 2장 (객체 생성과 파괴)
3 participants