JDK vs JRE vs JVM : 주요 차이점

JDK?

JDK는 애플릿 및 Java 애플리케이션을 만드는 데 사용되는 소프트웨어 개발 환경입니다. JDK의 전체 형태는 Java Development Kit입니다. Java 개발자는 Windows, macOS, Solaris 및 Linux에서 사용할 수 있습니다. JDK는 Java 프로그램을 코딩하고 실행하는 데 도움이됩니다. 동일한 컴퓨터에 둘 이상의 JDK 버전을 설치할 수 있습니다.

이 자습서에서는 다음을 학습합니다.

  • JDK 란 무엇입니까?
  • JRE 란 무엇입니까?
  • JVM이란 무엇입니까?
  • 왜 JDK를 사용합니까?
  • 왜 JRE를 사용합니까?
  • 왜 JVM인가?
  • JDK의 특징
  • JRE의 특징
  • JVM의 특징
  • JDK의 기능은?
  • JRE는 어떻게 작동합니까?
  • JVM은 어떻게 작동합니까?
  • JDK, JRE 및 JVM의 차이점

JRE 란 무엇입니까?

JRE는 다른 소프트웨어를 실행하도록 설계된 소프트웨어의 일부입니다. . 여기에는 클래스 라이브러리, 로더 클래스 및 JVM이 포함됩니다. 간단히 말해서 Java 프로그램을 실행하려면 JRE가 필요합니다. 프로그래머가 아닌 경우 JDK를 설치할 필요가없고 JRE 만 있으면 Java 프로그램을 실행할 수 있습니다. 모든 JDK 버전은 Java Runtime Environment와 함께 제공되므로 JRE를 별도로 다운로드하여 설치할 필요가 없습니다. PC. JRE의 완전한 형태는 Java Runtime Environment입니다.

JVM이란 무엇입니까?

JVM은 Java 코드 또는 응용 프로그램을 구동하는 런타임 환경입니다. Java 바이트 코드를 기계 언어로 변환합니다. JVM은 Java Run Environment (JRE)의 일부입니다. 별도로 다운로드하여 설치할 수 없습니다. JVM을 설치하려면 JRE를 설치해야합니다. JVM의 완전한 형태는 Java Virtual Machine입니다.

다른 많은 프로그래밍 언어에서 컴파일러는 특정 시스템에 대한 기계 코드를 생성하지만 Java 컴파일러는 JVM이라고하는 가상 기계에 대한 코드를 생성합니다.

p>

주요 차이점

  • JDK는 소프트웨어 개발 키트 인 반면 JRE는 Java 프로그램을 실행할 수있는 소프트웨어 번들입니다. JVM은 바이트 코드를 실행하기위한 환경입니다.
  • JDK의 전체 형태는 Java Development Kit이고, JRE의 전체 형태는 Java Runtime Environment이고, JVM의 전체 형태는 Java Virtual Machine입니다.
  • li>
  • JDK는 플랫폼에 의존하고 JRE는 플랫폼에 의존하지만 JVM은 플랫폼에 의존하지 않습니다.
  • JDK에는 개발, 디버깅 등을위한 도구가 포함되어 있습니다. JRE에는 클래스 라이브러리와 기타 지원 파일이 포함되어 있지만 소프트웨어에는 개발 도구는 JVM에 포함되어 있지 않습니다.
  • JDK는 설치 프로그램과 함께 제공되지만 JRE는 소스 코드를 실행할 수있는 환경 만 포함하고 JVM은 소프트웨어 JDK 및 JRE에 번들로 제공됩니다.

JDK를 사용하는 이유

다음은 JDK를 사용하는 중요한 이유입니다.

  • JDK에는 Java 프로그램을 작성하는 데 필요한 도구가 포함되어 있습니다. 그들을 실행하는 JRE.
  • 컴파일러, Java 애플리케이션 런처, Appletviewer 등이 포함됩니다.
  • 컴파일러는 Java로 작성된 코드를 바이트 코드로 변환합니다.
  • Java 애플리케이션 런처는 JRE를 열고 필요한 클래스를로드 한 다음 기본 메소드를 실행합니다.

JRE를 사용하는 이유

다음은 JRE를 사용하는 중요한 이유 :

  • JRE에는 클래스 라이브러리, JVM 및 기타 지원 파일이 포함되어 있습니다. 디버거, 컴파일러 등과 같은 Java 개발 도구는 포함되어 있지 않습니다.
  • 수학, swingetc, util, lang, awt 및 런타임 라이브러리와 같은 중요한 패키지 클래스를 사용합니다.
  • Java 애플릿을 실행해야하는 경우 시스템에 JRE를 설치해야합니다.

왜 JVM인가?

다음은 JVM을 사용하는 중요한 이유입니다.

  • JVM은 플랫폼 독립적 인 Java 실행 방법을 제공합니다. 소스 코드.
  • 많은 라이브러리, 도구 및 프레임 워크가 있습니다.
  • 자바 프로그램을 실행하면 모든 플랫폼에서 실행할 수 있으며 많은 시간을 절약 할 수 있습니다.
  • JVM은 Java 소스 코드를 저수준 기계어로 변환하는 JIT (Just-in-Time) 컴파일러와 함께 제공됩니다. 따라서 일반 애플리케이션보다 더 빠르게 실행됩니다.

JDK의 기능

다음은 JDK의 중요한 기능입니다.

  • 단일 catch 블록에서 여러 확장을 처리 할 수 있습니다.
  • JDK에는 JRE가 가진 모든 기능이 포함됩니다.
  • 컴파일러, 디버거 등과 같은 개발 도구가 포함되어 있습니다.
  • JDK li>
  • JDK는 Java 소스 코드를 개발하고 실행할 수있는 환경을 제공합니다.
  • Windows, Unix 및 Mac 운영 체제에 설치할 수 있습니다.
  • 다이아몬드 연산자는 정확한 인터페이스를 작성하는 대신 일반 유형 인터페이스를 지정하는 데 사용할 수 있습니다.

JRE의 기능

다음은 JRE의 중요한 기능입니다.

  • Java Runtime Environment는 JVM이 실제로 실행되는 도구 모음입니다.
  • JRE에는 Java Web Start 및 Java 플러그인을 포함한 배포 기술이 포함되어 있습니다.
  • 개발자는 JRE에서 소스 코드를 쉽게 실행할 수 있지만 Java 프로그램을 작성하고 컴파일 할 수는 없습니다.
  • JDBC (Java Database Connectivity), Remote Method와 같은 통합 라이브러리가 포함되어 있습니다. 호출 (RMI), JNDI (Java Naming and Directory Interface) 등.
  • JRE에는 JVM 및 Java HotSpot 가상 머신 클라이언트가 있습니다.

JVM의 기능

다음은 JVM의 중요한 기능입니다.

  • 클라우드 환경에서 애플리케이션을 실행하거나
  • Java Virtual Machine은 바이트 코드를 시스템 별 코드로 변환합니다.
  • 메모리 관리, 보안, 가비지 수집 등과 같은 기본적인 자바 기능을 제공합니다.
  • JVM은 자바 런타임 환경에서 제공하는 라이브러리와 파일을 사용하여 프로그램을 실행합니다.
  • JDK와 JRE는 모두 Java Virtual Machine을 포함합니다.
  • Java 프로그램을 한 줄씩 실행할 수 있으므로 인터프리터라고도합니다.
  • JVM은 예를 들어 쉽게 사용자 정의 할 수 있습니다. 최소 및 최대 메모리를 할당 할 수 있습니다.
  • 하드웨어 및 운영 체제와 독립적입니다. 따라서 Java 프로그램을 한 번 작성하면 어디서나 실행할 수 있습니다.

JDK는 어떻게 작동합니까?

JDK 기능

다음은 JDK의 중요한 구성 요소입니다.

  • JDK 및 JRE : JDK를 사용하면 프로그래머가 JVM 및 클래스 라이브러리를 포함하는 JRE.
  • 클래스 라이브러리 : Java 프로그램이 런타임에 호출 할 수있는 동적으로로드 가능한 라이브러리 그룹입니다.
  • 컴파일러 : 개발자의 텍스트 파일을 받아 컴파일하는 Java 프로그램입니다. Java 클래스 파일. Java 바이트 코드를 포함하는 컴파일러에서 제공하는 일반적인 출력 형식입니다. Java에서 기본 컴파일러는 Javac입니다.
  • 디버거 : 디버거는 개발자가 Java 프로그램을 테스트하고 디버깅 할 수있는 Java 프로그램입니다.
  • JavaDoc : JavaDoc은 Sun Microsystems에서 Java 용으로 만든 문서입니다. JavaDoc은 소스 프로그램에서 HTML 파일로 API 문서를 생성하는 데 사용할 수 있습니다.

JRE가 어떻게 작동합니까?

JRE 기능

JRE에는 JVM 인스턴스, 라이브러리 클래스 및 개발 도구가 있습니다. Java 코드를 작성하고 컴파일하면 컴파일러는 바이트 코드가있는 클래스 파일을 생성합니다.

다음은 JRE의 중요한 구성 요소입니다.

  • 클래스 로더 : 클래스 로더는 Java 프로그램 실행에 필요한 다양한 클래스를로드합니다. JVM은 부트 스트랩 클래스 로더, 확장 클래스 로더 및 시스템 클래스 로더라는 세 개의 클래스 로더를 사용합니다.
  • 바이트 코드 검증기 : 바이트 코드 검증기는 코드가 인터프리터를 방해하지 않도록 바이트 코드를 검증합니다.
  • 인터프리터 : 일단 클래스가로드되고 코드가 확인되면 인터프리터는 코드를 한 줄씩 읽습니다.
  • 런타임 : 런타임은 주로 프로그래밍에 사용되는 시스템입니다. 특정 프로그램이 실행되는 기간을 설명합니다.
  • 하드웨어 : Java 네이티브 코드를 컴파일하면 특정 하드웨어 플랫폼에서 실행됩니다.

이렇게하면 Java 프로그램은 JRE에서 실행됩니다.

JVM은 어떻게 작동합니까?

JVM 기능

다음은 JVM의 중요한 구성 요소입니다.

1) 클래스 로더

클래스 로더는 클래스 파일로드. 세 가지 주요 기능 즉, 수행합니다. 로드, 연결 및 초기화.

2) 메소드 영역

JVM 메소드 영역은 메타 데이터와 같은 클래스 구조, Java 메소드 용 코드 및 상수 런타임 풀을 저장합니다.

3) 힙

모든 개체, 배열 및 인스턴스 변수는 힙에 저장됩니다. 이 메모리는 여러 스레드에서 공유됩니다.

4) JVM 언어 스택

Java 언어 스택은 지역 변수와 그 일부 결과를 저장합니다. 각각의 모든 스레드에는 스레드가 생성 될 때 동시에 생성되는 자체 JVM 언어 스택이 있습니다. 메서드가 호출되면 새 프레임이 생성되고 메서드 호출 프로세스가 완료되면 제거됩니다.

5) PC 레지스터

PC 레지스터는 현재 실행중인 Java 가상 머신 명령어의 주소를 저장합니다. Java에서 각 스레드에는 별도의 PC 레지스터가 있습니다.

6) 네이티브 메서드 스택

네이티브 메서드 스택은 네이티브 라이브러리에 따라 달라지는 네이티브 코드의 명령을 보유합니다. 네이티브 힙에 메모리를 할당하거나 모든 유형의 스택을 사용합니다.

7) 실행 엔진

소프트웨어, 하드웨어 또는 전체 시스템을 테스트하는 데 사용되는 소프트웨어 유형입니다. 테스트 실행 엔진은 테스트 된 제품에 대한 정보를 전달하지 않습니다.

8) 네이티브 메서드 인터페이스

네이티브 메서드 인터페이스는 프로그래밍 프레임 워크입니다. JVM에서 실행되는 Java 코드를 라이브러리 및 기본 애플리케이션에서 호출 할 수 있습니다.

9) 네이티브 메서드 라이브러리

네이티브 라이브러리는 실행 엔진에 필요한 네이티브 라이브러리 (C, C ++)의 모음입니다.

JDK, JRE 및 JVM의 차이점

다음은 JDK, JRE 및 JVM의 주요 차이점입니다.

JDK JRE JVM
JDK의 전체 형태는 Java Development Kit입니다. JRE의 전체 형식은 Java Runtime Environment입니다. JVM의 전체 형태는 Java Virtual Machine입니다.
JDK는 Java로 애플리케이션을 개발하기위한 소프트웨어 개발 키트입니다. Java 코드를 실행하는 데 필요한 구성 요소와 함께 Java 클래스 라이브러리를 제공하는 소프트웨어 번들입니다. JVM은 Java 바이트 코드를 실행하고이를 실행하기위한 환경을 제공합니다.
JDK는 플랫폼에 따라 다릅니다. JRE도 플랫폼에 따라 다릅니다. JVM은 플랫폼에 독립적입니다.
Java 코드 개발, 디버깅 및 모니터링을위한 도구가 포함되어 있습니다. 여기에는 JVM이 프로그램을 실행하는 데 필요한 클래스 라이브러리 및 기타 지원 파일이 포함되어 있습니다. 소프트웨어 개발 도구는 JVM에 포함되어 있지 않습니다.
JRE의 상위 집합입니다. JDK의 하위 집합입니다. JVM은 JRE의 하위 집합입니다.
JDK를 사용하면 개발자가 JRE 및 JVM에서 실행하고 실행할 수있는 Java 프로그램을 만들 수 있습니다. JRE는 JVM을 생성하는 Java의 일부입니다. 소스 코드를 실행하는 Java 플랫폼 구성 요소입니다.
JDK는 설치 프로그램과 함께 제공됩니다. JRE는 소스 코드를 실행하기위한 환경 만 포함합니다. 소프트웨어 JDK 및 JRE에 번들로 제공되는 JVM.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다