JVM은 자바 파일(.java)을 컴파일하여 생성한 자바 바이트 코드(.class)를 해석하여 실행하는 인스턴스입니다. 자바는 한번 쓰고, 여러곳에서 사용하는 것을 목표로 하기 때문에 플랫폼에 독립적인 자바 바이트 코드를 생성하여 실행합니다.
JVM은 각 플랫폼에 맞게 구현되고, 자바 바이트 코드가 각 플랫폼의 JVM위에서 동작합니다. JVM은 정해진 규격에 맞게 구현되기 때문에 바이트 코드가 같은 결과를 내는 것은 보장합니다. 하지만 처리 속도는 보장하지 않습니다. 각 제조사마다 세부적인 구현은 다르기 때문입니다.
JVM의 종류는 다음의 위키에서 확인할 수 있습니다. 그 중에서 오라클의 HotSpot과 IBM JVM이 유명합니다.
https://en.wikipedia.org/wiki/List_of_Java_virtual_machines
JVM의 구성은 다음의 슬라이드에서 확인할 수 있습니다.
자바 버전별 JVM의 구현 스펙은 여기서 확인할 수 있습니다.
https://docs.oracle.com/javase/specs/
반응형
'java' 카테고리의 다른 글
[java] 자바의 가비지 콜렉션(GC: Garbage Collection)과 jstat을 이용한 모니터링 (0) | 2019.06.04 |
---|---|
[Java] JVM 메모리 구조 및 옵션 (0) | 2019.06.04 |
[java] Executor 클래스를 이용한 멀티 스레드 실행 예제 (0) | 2019.04.19 |
[java] 스트림을 이용한 맵리듀스 워드카운트 예제 (0) | 2019.04.08 |
아파치 커먼즈(Apache Commons) 라이브러리 (0) | 2019.03.29 |