Coding/Java
[Java] JVM(Java Virtual Machine)이란?
잇뉴얼
2022. 7. 2. 08:06
728x90
반응형
[Java] JVM(Java Virtual Machine)이란?
JWM (Java Virtual Machine)은 OS에 종속받지 않고 CPU가 java를 인식, 실행할 수 있게 하는 가상 컴퓨터입니다. Java가 자바 가상 머신을 거쳐 OS에 도달하는 과정이 있기에, java파일을 java bytecode(class)로 변환을 시켜줍니다. 이때 java bytecode(class)로 변환를 해주는것이 Java compiler 입니다.
그리고 Window, Mac, Linux 와 같은 다양한 OS에서 프로그램을 실행할 수 있도록 만들어줍니다.
▶ 자바 가상 머신(JWM) 구조
- Garbage Collector
- Execution Engine
- Class Loader
- Runtime Data Area
▶ 자바 가상 머신(JWM)의 특성
- 스택 기반의 가상 머신
- 단일 상속 형태의 객체 지향 프로그래밍을 가상 머신 수준에서 구현
- 포인터를 지원하되 C와 같이 주소 값을 임의로 조작이 가능한 포인터 연산이 불가능
- 가비지 컬렉션 사용
- 모든 기본 타입의 정의를 명확히 함으로써 플랫폼 독립성 보장
- 데이터 흐름 분석(data flow analysis)에 기반한 자바 바이트코드 검증기(verifier)를 통해 스택 넘침, 명령어 피연산자의 타입 규칙 위반, 필드 접근 규칙 위반, 지역 변수의 초기화 전 사용 등 많은 문제를 실행 전에 검증하여 실행 시 안전을 보장하고 별도의 부담을 줄여줌
- 명령어에서 스택에서 가져올 피연산자의 타입을 명령어에 지정(예: 정수 덧셈은 iadd, 단정밀도 실수 덧셈은 fadd)
반응형