[출근길 공부 002] Java Cleaner

이태훈·2025년 9월 22일

출근길 공부

목록 보기
2/10

Cleaner란 Java 9에서 도입되었으며, 이전의 finalize() 메서드보다 더 안전하고 효율적으로 네이티브 리소스나 외부 리소스를 해제하는 데 사용된다.

이 모듈은 특정 리소스가 가비지 콜렉터에 의해 해제될 때 임의의 동작을 수행하도록 하기 위해 사용된다.

Cleaner 동작 내부에서 타겟으로 하는 인스턴스를 참조할 경우 해당 람다가 절대 불리지 않는 걸 주의해야 한다.

또한, 다른 스레드에서 호출될 수 있기 때문에 레이스 컨디션을 주의해야 한다.

finalize의 문제점을 해결하기 위해 나왔지만, 여전히 이 모듈에서도 주의해야할 점이 있기 때문에 일반적으로 close나 try with resources 패턴 사용이 권장된다.

profile
https://www.linkedin.com/in/%ED%83%9C%ED%9B%88-%EC%9D%B4-7b9563237

0개의 댓글