목록Java (2)
be programmer
https://jinny8.tistory.com/12 Garbage Collector가 있지만 왜 close()를 사용하는지에 대한 의문자바 코드를 보다 보면 입출력 및 각종 스트림을 받고 그것이 끝나면 close()를 작성하는 경우가 있다.나는 왜 close()를 굳이 써야하는가에 대한 의문으로 구글링을 했고, 각종 참고자료들을 살펴jinny8.tistory.com여기서 이어진다. try문 밖을 벗어나면 자동으로 close()를 발동시켜 주는 Autocloseable이 무엇인지 찾아봤다.package java.lang;public interface AutoCloseable { void close() throws Exception;} java.lang패키지에 구현되어 있는 인터페이스이므로 lang으..

자바 코드를 보다 보면 입출력 및 각종 스트림을 받고 그것이 끝나면 close()를 작성하는 경우가 있다.나는 왜 close()를 굳이 써야하는가에 대한 의문으로 구글링을 했고, 각종 참고자료들을 살펴보았다. 보통은 Garbage Collector(이하 GC)가 알아서 사용한 스트림들을 종료한다. 그럼에도 불구하고, 왜 close()를 사용하여 스트림들을 종료해야 하냐면, 스트림들을 종료하지 않음으로써 Resource Leak가 발생할 수 있기 때문이다.main()에서 Scanner를 호출하고 또 다른 스트림들을 계속 호출한다. 이때 스트림을 종료하지 않으면, Old영역에 누적된 메모리 객체로 인해 Major GC가 발생하게 되고, 이는 프로그램의 성능 저하를 불러온다. 계속 이런 상황이 진행되면, Ou..