JVM 2

JVM의 Heap Area

개요 JVM의 Runtime Data Areas에서 Heap은 객체를 저장합니다. 객체에 대한 참조 변수는 Stack에 있습니다. Oracle의 Hotspot VM의 Heap 구조 Young Generation Eden 객체가 최초로 할당되는 장소 Eden이 포화상태이면 참조중인 모든 객체를 Survior로 옮깁니다. Survivor로 참조중인 객체가 모두 옮겨지면 Garbage Collection(Minor GC) 수행합니다. Survivor Survivor 1, Survivor 2로 이뤄져 있습니다. 참조중인 객체들은 하나의 Survivor 영역만 사용합니다. Old Generation Survivor 에서 오랫동안 참조되고 있는 객체는 Tenured로 이동합니다. Tenured에 온 객체는 앞으로도..

JVM(Java Virtual Machine)이란

개요 자바 프로그램이 실행되는 가상 환경 자바 개발자는 바이트 코드 파일을 배포하는 과정까지만 합니다. 사용자가 자바 프로그램을 실행하려면 JVM이 필요합니다. JVM은 바이트 코드가 각 OS에서 실행될 수 있도록 기계어로 변환하고 프로그램을 실행합니다. JVM을 통해서 플랫폼 독립적인 개발이 가능해집니다. JVM 구조 자바 프로그램은 각 OS에 최적화된 JVM 위에서 실행됩니다. Class Loader Loading : 클래스를 적재 Linking : 래퍼런스를 연결 Initialization : static 값 초기화 & 변수 할당 Memory Stack 스레드마다 런타임 스택 생성 메소드 호출을 스택 프레임으로 쌓음 스레드가 종료되면 런타임 스택도 사라짐 PC Registers 스레드마다 현재 실행..