자바
가비지 컬렉션(Garbage Collection)이란?
dev_dean
2022. 11. 26. 23:51
가비지 컬렉션(Garbage Collection)이란?
C언어를 보면 할당된 메모리의 사용이 끝나면 개발자가 직접 free함수를 호출해서 메모리를 해제해야 했다. 자바에서는 이렇게 개발자가 직접 메모리를 해제하지 않아도 되도록 자동으로 불필요한 메모리를 정리를 해주는데 이 역할을 하는 것이 가비지 컬렉션(Garbage Collection)이다.
public class Main {
public static void main(String[] args) {
String url = "https://";
url += "www.naver.com";
System.out.println(url);
}
}
위 코드에서 "https://"으로 선언된 url이 다음 라인에서 "www.naver.com"이라는 문자열을 더하는 연산을 수행한다.
이때 기존의 "https://"에 "www.naver.com"을 덧붙이는 연산을 수행하는 것이 아닌 "https://www.naver.com"이라는 새로운 문자열을 생성해서 heap에 할당된다. 이렇게 되면 "https://"의 경우 더 이상 참조하고 있는 변수가 없기 때문에 메모리가 해제된다. 이 과정이 가비지 컬렉션이 작동하는 과정이라고 할 수 있다.