woojoovove   4년 전

컬렉션이라고 할 게 스택 하나 뿐인데 메모리초과 이해가 안돼요

djm03178   4년 전

String에 +=을 하는 건 기존 String의 내용에 뒤의 String의 내용을 이어붙인 새로운 문자열을 만들어서 담고, 원래의 문자열은 더 참조하는 레퍼런스가 없으면 GC에 들어가게 됩니다. 이 버려진 문자열이 정확히 언제 메모리에서 완전히 해제되는지는 모르겠지만, 그 전까지는 계속 메모리상에 누적되어 큰 용량을 차지하는 것으로 보입니다. 또한 이는 시간복잡도 역시 O(N^2)으로 만들기 때문에 적절치 못합니다. 문자열을 길게 계속 이어붙이려면 StringBuilder를 사용해야 합니다.

woojoovove   4년 전

몰랐던 사실입니다 정말 감사합니다!

댓글을 작성하려면 로그인해야 합니다.