가비지컬렉션
-
Managed Language 자바, 자바는 어떻게 힙에서 제거할 객체를 알아낼까?TECH/Java 2022. 11. 29. 11:23
Managed Language Java vm은 객체가 더 이상 필요 없을 때 메모리를 회수한다. 프로그래머가 직접 메모리를 해제해야 하는 다른 언어와 가장 큰 차이점이다. 자바에서 메모리 leak이 발생하는 것은 불가능하다. 자바에서 new 키워드를 사용할 경우 os에서 메모리를 가져오는 것이 아니라 virtual machine을 통해서 가져오게 된다. virtual machine은 c로 작성된 프로그램이고, 이 프로그램이 os에서 가져온 메모리를 관리한다. 따라서 vm에 문제가 없다면, os 레벨의 메모리 leak은 발생할 수 없다. 메모리 leak이 발생했다면 그것은 vm의 문제이고 자바 프로그래머의 책임이 아니다. GC는 메모리를 free up하는 과정이다. GC는 Lisp에서 개발되었고, 자바는 ..