상세 컨텐츠

본문 제목

[Java] JVM 이란.

Java

by 메타샤워 2023. 7. 17. 17:24

본문

JVM (Java Virtural Machine) 

 

소프트웨어나 Machine이라는 말이 들어간 이유는 JVM이 실제적으로 CPU와 같은 역할을 한다.

클래스파일(.class)은 직접 CPU에서 동작할 수 있는 코드 (Native code)가 아니다.

 

생성된 클래스파일은 중간단계의 언어라고 할 수 있는 byte code로 이루어져 있다.

 

바로 이 byte code를 실행시키기 위한 가성적인 CPU가 필요한데 바로 이 역할을 하는 것이 JVM이다.

 

왜 Java언어는 native code가 아닌 byte code를 생성하는가?

 

그 이유는 바로 이식성 때문이다.

 

직접 native code를 생성하게되면 그 native code는 CPU에 종속적인 특성을 갖게된다.

 

즉 컴파일된 CPU에서만 실행할 수 밖에 없다. 반면에 byte code는 JVM 위에서 실행되기 때문에, 
어떤 플랫폼이건 JVM만 있으면 실행이 가능하게 되는것이다.

 

JVM의 단점은 다른 인터프리터 방식의 언어(C, C++ .. )보다는 수행 속도가 느리다는 것이다.

이것은 JVM이 커파일하여 생성한 byte code를 사용하긴 하지만, JVM이 실행 중에 byte code를 native code로 변환하는 시간을 반드시 필요하게 된다.

'Java' 카테고리의 다른 글

[Java] double형 위도 - 경도 실제거리 구하기  (0) 2023.07.17

관련글 더보기