가비지 컬렉션(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://"의 경우 더 이상 참조하고 있는 변수가 없기 때문에 메모리가 해제된다. 이 과정이 가비지 컬렉션이 작동하는 과정이라고 할 수 있다.
'자바' 카테고리의 다른 글
Wrapper Class (0) | 2022.12.09 |
---|---|
원시 타입과 참조 타입 (0) | 2022.12.09 |
추상 클래스(abstract class)와 인터페이스(interface) 의 차이점 (0) | 2022.11.30 |
오버라이딩(Overriding) 과 오버로딩(Overloading)의 차이 (0) | 2022.11.29 |
JVM이란? (0) | 2022.11.26 |