인프런 커뮤니티 질문&답변
7장 스캐너 문제풀이3
작성
·
307
답변 1
0
규현님 얘기에 대한 제 생각은 다음과 같습니다. 흔히 객체와 인스턴스를 붕어빵 틀과 붕어빵에 비유하곤 합니다. 붕어빵 과정을 반복하기 위해 틀을 새로이 계속 만드는 상황이라면 오히려 손해가 아닐까 하고 생각합니다.
입력에 대한 부분을 while문에서 주로 하고 있고, 웬만한 컴퓨터는 이정도의 부하에 끄덕도 없겠지만, 입력을 위한 객체 하나를 만들고 다 사용한 시점에 그만두는 (scanner.close())것이 훨씬 효율적으로 운용하는 거라 생각합니다.






저도 같은 내용으로 궁금증이 생겼어요!
이전 지역 변수와 스코프 강의에서 설명하셨던 내용 중 단순한 카운트 기능만 하는 int i와 같이 반복문 안에서만 사용되는 Scanner 객체가 계속 main 메서드에 남아 있는 것은 불필요한 메모리가 되지 않을까?라는 생각이 들어요.. 반면 while문 밖에 Scanner 객체를 선언한다면 반복문을 계속 돌 때 계속해서 Scanner 객체를 생성하지 않아도 되니 시간복잡도가 더 낮아지지 않을까 하는 생각도 같이 들어요. 어떤 방식이 더 효율적인지 그리고 이유가 무엇인지 궁금합니다