1436번 - 영화감독 숌
소스에서 할당한 변수도 별로없고 계산도 많지않은데 128mb를 초과해서 메모리초과가 떠요 어떤 이유로 메모리초과가 뜨나요?
흔히 자바의 string 객체가 불변 개체라고 합니다. 즉, 값만 변경하는 것이 불가능하다는 거죠.
즉, b = Integer.toString(check); 이 과정에서 String이 계속 만들어지면서 새로운 공간을 차지하기 때문에 메모리가 초과될 수 있습니다.
저는 String.valueOf 썻는데 정답 처리 되더라구요..
우선, 댓글 달아주셔서 감사합니다!
맨 위에 있는 질문자님의 코드의 경우에는 18번 라인에서 볼 수 있듯이 substring을 호출하고 있습니다.
substring 함수 또한 위와 마찬가지로, String을 리턴하므로, 메모리 초과의 원인이 될 수 있습니다.
댓글을 달아주신 분의 경우에는 이러한 substring의 부분이 배열의 인덱스로서 처리되었기 때문에 메모리가 초과되지 않을 수 있었습니다!
알려주셔서 감사합니당!!
댓글을 작성하려면 로그인해야 합니다.
iamgus 2년 전 1
소스에서 할당한 변수도 별로없고 계산도 많지않은데 128mb를 초과해서 메모리초과가 떠요 어떤 이유로 메모리초과가 뜨나요?