[Java] String은 왜 느릴까? StringBuilder와 가변 배열의 비밀
·
알고리즘
1. String은 왜 느릴까알고리즘 문제를 풀때 String 객체에 + 연산을 하면 왜 메모리 초과나 시간 초과가 나는걸까?String은 char[]로 이루어져 있다(Java 9 이상부터는 byte[]).그리고 final 키워드 때문에 수정이 불가하며 수정을 원하면 매번 새로운 배열 객체를 생성해야한다. 그럼 + 연산자는 어떻게 구현되는 것일까매번 새로운 String 객체를 만들어내는것이다. 이것이 메모리 초과와 시간 초과의 원인이다. 이로인해 많은 비효율이 발생했고, 이를 해결하기 위해 StringBuilder가 탄생했다.StringBuilder는 수정가능한 가변 배열(Dynamic Array)을 사용한다. 가변 배열을 구현해봤다.public class MyDynamicArray { privat..