본문 바로가기

JVM2

[Java] JVM(Java Virtual Machine) JVM 자바(Java) 언어의 실행 환경인 JVM(Java Virtual Machine)은 자바 바이트코드를 실행하는 가상 컴퓨터입니다. JVM은 말 그대로 가상 기계, 즉 가상의 컴퓨터를 물리적 컴퓨터의 메모리 안에 하나 더 구축합니다. 가상이긴 하지만 새로운 가상 컴퓨터를 구축하다보니 더 많은 물리적 CPU 자원과 메모리를 소비하기 때문에 당시 프로그래밍 언어들과 속도를 비교했을 때는 많이 느렸습니다. 하지만 하드웨어의 발전, 하드웨어 구성 요소의 가격 하락, 최적화된 알고리즘으로 개발된 API와 JVM으로 인해 현재는 자바의 성능이 느린 것을 체감하기는 힘듭니다. 자바의 가상 세계는 현실 세계에서 컴퓨터의 물리적인 하드웨어와 운영체제 그리고 그 위에서 구동될 소프트웨어를 가지는 구조를 모방하여 구성.. 2023. 8. 7.
[Java] 클래스 로더 서브시스템(Class Loader SubSystem) Class Loader SubSystem 출처 클래스 로더(Class Loader SubSystem)는 자바 바이트 코드(.class)를 로드하고 JVM의 메모리 영역인 Runtime Data Areas로 동적 로딩하는 역활을 수행합니다. 클래스 로더는 필요에 따라 클래스 파일을 검색하고 로드하며, 로드된 클래스는 메모리 영역에 할당됩니다. 클래스를 로딩하는 과정은 3단계로 이루어집니다. 로드(Loading): 클래스 로딩은 먼저 해당 클래스 파일을 찾아서 메모리에 로드하는 과정입니다. 클래스 로더는 클래스 파일을 파일 시스템, JAR 파일, 네트워크 등에서 찾아옵니다. 링크(Linking): 로드된 클래스 파일의 바이트 코드는 아래 3단계의 링크 과정을 거쳐서 최종적으로 실행 가능한 형태로 변환됩니다... 2023. 8. 3.