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] double형 위도 - 경도 실제거리 구하기 (0) | 2023.07.17 |
---|