본문 바로가기
공부/이펙티브자바

[이펙티브자바]item9.try-finally보다는 try-with-resources를 사용하라.

by 띵커베르 2023. 1. 17.
728x90
  • InputStream, OutputStream, Connetion 등의 자바 라이브러리를 직접 close() 해줘야하는 경우가 있다
    • 왜 이것들은 close()를 해주고 다른객체들은 GC가 수거해 갈까?
      • 메모리를 관리하며, 더이상 필요없는 객체는 GC가 수거해 가는데, Stream의 경우에는 외부 자원을 가져와서 쓰기때문에, 하드데이터 GC가 이를 알지 못해 close 를 통해서 처리한다.
      • 외부 라이브러리를 쓸때 한번씩 더 체크해야할 상황인듯.
    • 기존 try finally 방식도 나쁘지는 않다고 생각하지만, 코드가 더 깔끔하고, 실수할 여지가 없는 try-with-resources 를 사용하자.
    • *참고로 코틀린은 use 를 사용한다
728x90

댓글