JVM
[Java] JVM 동작 및 실행 과정
JVM 은 크게 4가지 구성요소로 이루어져있습니다. 1. 클래스 로더 시스템 (Class Loader System) 클래스 로더 시스템은 자바 바이트코드(*.class)를 실행시점(RunTime)에 읽어들여서 JVM의 메모리 영역(Runtime Data Area)에 적절하게 배치시켜주는 역할을 합니다. 크게 로딩 -> 링크 -> 초기화 순서로 진행됩니다. 로딩 (Loading): 클래스 로더가 .class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고 메서드 영역에 저장합니다. 로딩이 끝나면 해당 클래스 타입의 Class 객체를 생성하여 “heap" 영역에 저장합니다. 링크 (Linking): Verify(확인), Prepare(준비), Resolve(해결) 3 단계로 나누어져 있습니다. ..
[Java] JVM, JRE, JDK?
자바 개발자라면 JVM, JRE, JDK는 필연적으로 마주하게 되는 용어인 것 같습니다. 이들이 왜 존재하고 어떻게 동작하는지, 어떤 차이점이 있는지 개념적으로만 간단하게 정리해보고자 합니다. JVM (Java Virtual Machine) - 자바 가상 머신 기계(Machine)는 "동력에 의해 일정한 일을 하는 도구"라는 뜻을 가지고 있죠. JVM도 마찬가지입니다. 다만 JVM의 역할은 자바 코드(.java)가 컴파일되어 만들어진 자바 바이트코드(.class)를 하드웨어가 이해할 수 있도록 기계어로 번역을 해주는 것이죠. [Java] 자바(Java)의 역사에서 언급했듯, 자바 이전에는 컴파일된 코드가 플랫폼(또는 OS)와 CPU에 종속적이어서, 한번 컴파일된 파일로 다른 플랫폼이나 하드웨어 환경에서 ..