Java 컴파일러 ( javac
), 가상 머신 (JVM) 및 java
스타터 는 어떤 언어로 작성됩니까?
Java 컴파일러 ( javac
), 가상 머신 (JVM) 및 java
스타터 는 어떤 언어로 작성됩니까?
답변:
질문의 정확한 문구는 약간 오해의 소지 가 있습니다. 여러 JVM 공급 업체 (jrockit는 하나, IBM은 다른 것) 가 있으므로 " JVM" 또는 "컴파일러" 가 아닙니다. 여러 컴파일러 .
썬 JVM이 되어 작성 C
은 당신의 컴퓨터에서 실행으로 JVM A - 될 필요는 없다, 플랫폼에 따라 실행 따라서 수 원래 어떤 언어로 작성되었습니다. 예를 들어, 원래 IBM JVM은 Smalltalk 로 작성되었습니다.
Java 라이브러리 ( java.lang
및 java.util
종종 Java API 라고도 함 )는 자체로 Java native
로 작성되지만 C
또는 로 표시된 메소드 는 또는 로 작성되었습니다 C++
.
Sun에서 제공하는 Java 컴파일러도 Java로 작성되었다고 생각합니다. (다시 말하지만, 거기에는 여러 개의 컴파일러가 있습니다)
최초의 Java 컴파일러는 Sun Microsystems에서 개발했으며 C ++의 일부 라이브러리를 사용하여 C로 작성되었습니다. 오늘날 Java 컴파일러는 Java로 작성되고 JRE는 C로 작성됩니다.
Java 컴파일러가 다음과 같이 Java로 작성된 방법을 상상할 수 있습니다.
Java 컴파일러는 Java 프로그램으로 작성된 다음 C (첫 번째 Java 컴파일러)로 작성된 Java 컴파일러로 컴파일됩니다. 따라서 새로 컴파일 된 Java 컴파일러 (Java로 작성)를 사용하여 Java 프로그램을 컴파일 할 수 있습니다.
에서 자바 문서
컴파일러는 Java로 작성되고 런타임은 ANSI C로 작성됩니다.
실제로 Oracle JVM은 C가 아닌 C ++로 작성되었습니다.
http://openjdk.java.net/groups/hotspot/ 에서 HotSpot JVM 코드를 살펴보십시오.
(자세한 내용은이 링크를 확인할 수 있습니다 : https://docs.oracle.com/javase/specs/jvms/se7/html/ )