2013-07-01 5 views
5

다음 사항에 대해 자세히 설명해주십시오.JVM, JDK, JRE, JIT의 계층 구조는 무엇입니까?

  • JDK에는 JRE가 포함되어 있습니까?
  • JDK는 .class를 .class로 변환 한 다음 JVM이 .class를 인식하고 바이너리로 변환 한 다음 OS가 바이너리를 직접 이해할 수있을 때 실제로 JRE가 실제로 필요합니까?
  • openJDK 란 무엇입니까? enter image description here

+0

[this] (http://docs.oracle.com/javase/7/docs/)에서 JDK, JRE 및 JVM (Java HotSpot Client 및 Server VM)에 대한 명확한 이미지를 얻을 수 있습니다. 그 말을 읽지 마라. 이미지와 비슷한 표를보십시오. – johnchen902

답변

6

나는 위의 이미지는 답을 설명 바랍니다

출처 : here

+1

좋은 그림이지만 JIT는 JVM에 속하지 않지만 ** JRE **입니다. 참고 자료 : * JIT는 실제로 JVM 표준의 일부는 아니지만 그럼에도 불구하고 Java *의 필수 구성 요소입니다 - [Oracle : Understanding JIT] (http://docs.oracle.com/cd/E13150_01/jrockit_jvm/ jrockit/geninfo/diagnos/underst_jit.html) – gaborsch

5

자바 개발자는 Java 프로그램을 개발하는 데 필요한 도구가 포함되어 키트 (JDK) 및 JRE 프로그램을 실행하십시오. 도구에는 컴파일러 (javac.exe), Java 응용 프로그램 시작 기 (java.exe), Appletviewer 등이 포함됩니다. 컴파일러는 java 코드를 바이트 코드로 변환합니다. Java 응용 프로그램 시작 프로그램은 JRE를 열고 클래스를로드 한 다음 main 메소드를 호출합니다. 자신 만의 프로그램을 작성하고 컴파일하려면 JDK가 필요합니다. 실행중인 Java 프로그램의 경우 JRE로 충분합니다.

JRE는 Java 파일의 실행 대상입니다. 즉 JRE = JVM + Java 패키지 클래스 (util, math, lang, awt, swing 등) + 런타임 라이브러리. JDK는 주로 자바 개발을 목표로합니다.

OpenJDK (Open Java Development Kit)은 Java SE (Java Platform, Standard Edition)의 무료 오픈 소스 구현입니다.

Just-In-Time (JIT) 컴파일러는 런타임시 Java 응용 프로그램의 성능을 향상시키는 Java ™ Runtime Environment의 구성 요소입니다.

전체 개념 다이어그램 here을 얻을 수 있습니다.