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에서 프로그램을 실행할 수 있도록 만들어줍니다. 

자바 가상 머신 사양의 자바 SE 7 에디션에 기반을 둔 자바 가상 머신(JVM) 아키텍처의 개요도.@위키백과

▶ 자바 가상 머신(JWM) 구조
  • Garbage Collector
  • Execution Engine
  • Class Loader
  • Runtime Data Area
▶ 자바 가상 머신(JWM)의 특성
  • 스택 기반의 가상 머신
  • 단일 상속 형태의 객체 지향 프로그래밍을 가상 머신 수준에서 구현
  • 포인터를 지원하되 C와 같이 주소 값을 임의로 조작이 가능한 포인터 연산이 불가능
  • 가비지 컬렉션 사용
  • 모든 기본 타입의 정의를 명확히 함으로써 플랫폼 독립성 보장
  • 데이터 흐름 분석(data flow analysis)에 기반한 자바 바이트코드 검증기(verifier)를 통해 스택 넘침, 명령어 피연산자의 타입 규칙 위반, 필드 접근 규칙 위반, 지역 변수의 초기화 전 사용 등 많은 문제를 실행 전에 검증하여 실행 시 안전을 보장하고 별도의 부담을 줄여줌
  • 명령어에서 스택에서 가져올 피연산자의 타입을 명령어에 지정(예: 정수 덧셈은 iadd, 단정밀도 실수 덧셈은 fadd)

 

반응형