본문 바로가기

전체 글

(10)
GC (Garbage Collection)의 동작 방식에 대해서 GC(Garbage Collection)는 Java에서 메모리를 자동으로 관리하는 기능입니다. 따라서 자바는 메모리를 명시적으로 해제하지 않습니다. GC가 알아서 해주기 때문입니다. GC는 JVM의 Heap 영역에 존재하고 있습니다. 그리고 Heap 영역은 객체들이 저장되는 곳이므로 GC는 객체를 관리하는 것이라고 할 수 있습니다. Heap 구조 그렇다면 먼저 GC가 관리하는 Heap의 구조에 대해 살펴보겠습니다. JVM의 Heap 영역은 처음 설계될 때 다음을 전제로 설계되었습니다. - 대부분의 객체는 금방 접근 불가능 상태(unreachable)가 된다 - 오래된 객체에서 젊은 객체로의 참조는 아주 적게 존재한다. 이 전제들은 JVM GC 설계자들이 대부분의 객체가 생겨나자마자 쓰레기가 된다는 것을 ..
JVM의 메모리 구조에 대해서 JVM이란 JVM이란 Java Virtual Machine의 약자로, Java 프로그램을 실행하기 위한 프로그램입니다. JVM은 어느 플랫폼(OS)에서든 Java 프로그램을 사용할 수 있게 해주는 특징을 가지고 있습니다. 즉, Java가 플랫폼에 독립적일 수 있는 이유가 JVM 때문인데, 그림과 같이, 일반적으로 하드디스크에서 메모리(RAM)로 데이터를 올릴 때, 운영체제(OS, Operating System)가 관여하게 됩니다. 그래서 일반 애플리케이션은 OS에 의존적이게 되어 다른 OS에서 사용하려면 같은 코드라도 그 OS에 맞게 변경되어야 합니다. 그러나 JVM은 OS에게 메모리를 할당받음으로써 아예 메모리의 일부를 차지해 직접 관리하게 됩니다. Java는 JVM 위에서 JVM과 상호작용을 하면 되..