java components java platform
이 자습서에서는 플랫폼으로서의 Java 및 구성 요소 (예 : JRE, JDK, Java 가상 머신 및 JRE와 JDK의 차이점)에 대한 자세한 설명을 제공합니다.
Java는 플랫폼뿐만 아니라 프로그래밍 언어로도 설명되었습니다. 입문 자습서에서 플랫폼은 프로그램이나 응용 프로그램을 실행할 수있는 소프트웨어 환경이라는 것을 이미 논의했습니다.
이 튜토리얼에서는 플랫폼으로서의 Java에 대해 설명합니다. 또한 Java 플랫폼 구성 요소에 대해 논의하고 작동 방식을 살펴 봅니다.
학습 내용 :
자바 플랫폼
Java 플랫폼은 Java 프로그래밍 언어로 작성된 응용 프로그램을 실행하는 데 도움이되는 소프트웨어 또는 프로그램 모음입니다. Java 플랫폼은 Java 컴파일러, 라이브러리 세트 및 실행 엔진으로 구성됩니다.
Java 플랫폼은 Java 프로그래밍 언어를 플랫폼 독립적 인 언어로 만드는 특정 OS와 독립적입니다.
Java 플랫폼은 다음 구성 요소로 구성됩니다.
- 자바 언어
- JDK (Java Development Kit)
- JRE (Java Runtime Environment)
- 자바 컴파일러
- 자바 가상 머신 (JVM)
위의 주요 구성 요소 외에도 Java 플랫폼에는 Java 응용 프로그램을 효율적으로 실행하는 데 필요한 가비지 수집기, 라이브러리 집합 및 기타 추가 구성 요소와 도구가 포함되어 있습니다.
이러한 모든 구성 요소 간의 관계를 나타내는 다음 다이어그램을 고려해 보겠습니다.
따라서 위의 다이어그램에서 결론을 내릴 수 있습니다.
JRE = JVM + 라이브러리 클래스.
JDK = JRE + 개발자 도구.
각 구성 요소를 다루기 전에 먼저 Java 프로그램 실행의 실행 흐름을 이해하겠습니다.
다음 다이어그램은 Java 프로그램의 흐름을 보여줍니다.
따라서 위의 다이어그램은 Java 프로그램의 간단한 실행 흐름을 보여줍니다. Java 언어로 작성된 프로그램은 Java 컴파일러 (javac)에 의해 컴파일됩니다. 컴파일 후 기계 코드를 생성하는 다른 언어 컴파일러와 달리 Javac 컴파일러는 바이트 코드로 구성된 클래스 파일을 생성합니다.
이제이 클래스 파일은 클래스 파일을 기계 종속 코드를 포함하는 오브젝트 파일로 변환하는 JVM (Java Virtual Machine)에 제공됩니다. 그런 다음이 코드는 기계에 의해 실행됩니다.
이러한 각 구성 요소에 대해 자세히 설명하겠습니다.
자바 언어
Java는 Java 플랫폼에서 사용하는 프로그래밍 언어입니다. Java는 구문이 C에서 파생되고 OOPS 기능이 C ++에서 파생되는 객체 지향 프로그래밍 언어입니다. 구문, 규칙, 형식 및 프로그래밍 패러다임이 있습니다.
이 시리즈에서는 Java 및 프로그래밍의 모든 주요 개념을 자세히 학습합니다.
자바 컴파일러
이것은 Java 프로그래밍 언어 용 컴파일러이며 그 기능은 Java 소스 코드에서 Java 클래스 파일을 생성하는 것입니다. Java 클래스 파일에는 플랫폼에 독립적 인 Java 바이트 코드가 포함되어 있습니다.
클래스 파일을 생성 한 후 JVM은 이러한 클래스 파일을로드하고 바이트 코드를 해석하거나 JIT (Just-in-time) 컴파일러를 사용하여 기계 코드로 컴파일합니다.
자바 가상 머신 (JVM)
JVM은 Java 프로그래밍 언어 및 Java 플랫폼의 중심입니다. JVM은 바이트 코드를 기계 별 코드 (다른 프로그래머 언어에서는 오브젝트 코드라고도 함)로 변환합니다.
JVM은 가비지 수집, 메모리 관리, 보안 등의 기능을 제공합니다. JVM은 플랫폼과 무관하며 시스템에 의존하지 않고 운영 체제와도 독립적 인 가상 인터페이스를 사용하여 기능을 사용자 정의 할 수 있습니다.
이러한 JVM의 플랫폼 독립성을 통해 한 시스템에서 Java 프로그램을 생성하고 다른 시스템에서 실행할 수 있습니다 (WORA – Write – Once – Run – Anywhere).
다음 다이어그램은 JVM의 다양한 부분을 보여줍니다.
JVM은 RAM에 있습니다. Java 프로그램이 Java 컴파일러에 의해 클래스 파일로 변환 될 때 실행되어야합니다.
실행을 위해 클래스 로더가 클래스 파일을 Ram으로 가져옵니다. 여기에서는 보안 문제에 대해 BYTE 코드가 확인됩니다. Classloader는 실행될 프로그램의로드, 링크 및 초기화를 담당합니다.
위 다이어그램에 표시된 JVM 메모리에는 표시된대로 다양한 구성 요소가 포함되어 있으며 실행할 현재 명령이 포함 된 PC 레지스터, 변수, 배열 등을 보유하는 힙을 보유하여 프로그램 실행을 도와줍니다.
JVM 메모리에는 각각 메서드 코드와 네이티브 언어 사양을 포함하는 메서드 영역과 네이티브 메서드 스택도 포함되어 있습니다. JVM 스택은 프로그램의 인스턴스 또는 현재 스레드를 보유합니다. 하나 이상의 스레드가있는 경우 각 스레드는 해당 JVM 스택을 갖게됩니다.
프로그램이 제대로 연결되면 실행 엔진으로 전달됩니다. 실행 엔진은 네이티브 메서드 인터페이스 및 네이티브 메서드 라이브러리와 협력합니다. 네이티브 메서드 인터페이스는 자바 코드가 네이티브 메서드 라이브러리의 일부인 라이브러리 및 네이티브 애플리케이션을 호출 할 수 있도록하는 프로그래밍 프레임 워크입니다.
다음으로 실행 엔진은 JIT (Just-In-Time) 컴파일러를 사용하여 바이트 코드를 네이티브 기계어 코드로 변환합니다. 그런 다음 프로그램이 기계에 의해 실행됩니다.
노트 : JIT 또는 Just-in-time 컴파일러는 JVM (Java Virtual Machine)의 일부입니다. 동시에 유사한 기능을 가진 바이트 코드의 일부를 해석합니다. 즉, 동일한 프로그래밍 수준에서 바이트 코드를 원시 기계 코드로 변환합니다. 이것이 자바가 해석 된 언어와 함께 컴파일되는 이유입니다.
JRE (Java Runtime Environment)
이름에서 알 수 있듯이 JRE는 Java 프로그램 및 응용 프로그램을 실행하는 데 필요한 런타임 환경입니다. JRE는 Java 프로그램을 성공적으로 실행하기 위해 JVM (Java Virtual Machine)과 바이너리 및 기타 클래스로 구성됩니다.
JRE는 JDK의 하위 집합이며 Java 컴파일러, 디버거 등과 같은 개발 도구를 포함하지 않습니다. 따라서 Java 응용 프로그램이 다른 곳에서 개발되고 컴퓨터에서만 실행해야하는 경우 JRE를 별도로 설치할 수 있습니다. 이를 위해 JDK를 설치해야합니다.
컴퓨터에서 Java 프로그램을 실행하기위한 최소 요구 사항이므로 컴퓨터에 JRE를 설치해야합니다.
JRE에는 다음 구성 요소가 포함됩니다.
- 코드 라이브러리, 속성 설정 및 리소스 파일 : 여기에는 charsets.jar, rt.jar 등과 같은 파일이 포함됩니다.
- DLL 파일 : 자바 핫스팟 클라이언트 가상 머신 및 서버 가상 머신에서 사용됩니다.
- 자바 확장 파일 : 예를 들어 localedata.jar과 같은 로케일 사양과 관련된 파일
- 파일 보안 관리에 필요합니다. 예를 들어 java.policy, java.security
- 애플릿 지원 클래스.
- 트루 타입 글꼴 파일 : 일반적으로 플랫폼에서 필요합니다.
Java로 작성된 애플리케이션 / 프로그램을 실행하려면 시스템에 JRE가 설치되어 있어야합니다. JRE는 플랫폼에 따라 다릅니다. 즉, O.S 및 아키텍처와 호환되는 JRE를 다운로드하여 설치해야합니다.
JDK (Java Development Kit)
이것은 모든 Java 환경의 핵심 구성 요소입니다. JDK에는 Java 컴파일러, Java 디버거 및 기타 핵심 클래스와 함께 JRE (Java Runtime Environment)가 포함되어 있습니다. JDK는 Java 프로그램을 컴파일하고 디버그하는 데 필요한 도구뿐만 아니라 전체 실행 파일과 바이너리를 제공하므로 Java 개발에 사용됩니다.
JDK는 플랫폼 별 소프트웨어이므로 각 운영 체제에 대해 별도의 JDK 설치 프로그램이 있습니다.
JDK에는 다음 구성 요소가 포함됩니다.
- jConsole : Java 모니터링 및 관리 콘솔입니다.
- 항아리 : 아카이버입니다. 이 도구는 관련 클래스 라이브러리를 단일 Jar 파일로 패키징하고 Jar 파일을 관리하는 데 사용됩니다.
- jarSigner :이 도구는 jar 서명 및 확인에 사용됩니다.
- javap : 이것은 클래스 파일 디스어셈블러를위한 도구입니다.
- javaws : JNLP 애플리케이션 용 Java 웹 시작 실행기.
- 자트 : 자바 힙 분석 도구.
- jrunscript : Java 명령 줄 스크립트 셸.
- jstack : Java 스레드에 대한 스택 추적을 인쇄하는 데 사용되는 유틸리티입니다.
- Javadoc : 소스 코드 주석에서 문서를 자동으로 생성합니다.
- 애플릿 뷰어 : 웹 브라우저없이 애플릿 실행 및 디버깅에 사용됩니다.
- 적절한 : 주석 처리 도구입니다.
- extCheck : jar 파일 충돌을 확인하는 데 사용되는 유틸리티입니다.
- keytool :이 유틸리티를 사용하여 키 저장소를 조작 할 수 있습니다.
- 정책 도구 : 정책 생성 및 관리 도구입니다.
- xjc : 이것은 XML 스키마를 받아들이고 Java 클래스를 생성하는 XML 바인딩 (JAXB) API의 일부입니다.
따라서 JDK의 구성 요소가 개발 관점에서 우리에게 필요한 구성 요소임을 알 수 있습니다.
편안한 웹 서비스에 대한 인터뷰 질문
위의 다이어그램과 같이 Java 소스 코드는 JDK의 일부인 Java 컴파일러에 의해 바이트 코드로 변환됩니다. 그런 다음이 바이트 코드가 JVM (이미 위에서 설명한이 프로세스)으로 전달되고 거기에서 코드가 실행되는 JRE로 이동합니다.
JDK와 JRE에 대한 자세한 내용을 살펴 보았으니 이제 JRE와 JDK의 차이점을 살펴 보겠습니다.
JRE 대 JDK
하지 마라 | JRE | JDK |
---|---|---|
7 | 컴파일 / 해석 된 Java 프로그램을 입력으로 취하고 출력을 생성합니다. | Java 소스 프로그램을 컴파일하고 JVM에 제공되는 클래스 파일을 생성합니다. |
1 | JRE는 Java Runtime Environment를 나타냅니다. | JDK는 Java Development Kit의 약자입니다. |
두 | 주로 Java 프로그램 실행에 사용됩니다. | JDK는 개발자가 Java 프로그램을 개발하는 데 사용합니다. |
삼 | 내부에 번들로 제공되는 JVM (Java Virtual Machine)이 포함되어 있습니다. | JVM이 없습니다. |
4 | JRE에는 Java 컴파일러가 없으므로 프로그램을 컴파일 할 수 없습니다. | JDK에는 javac 컴파일러가 있으며 프로그램 컴파일을 담당합니다. |
5 | Java 클래스 라이브러리, Java 명령 및 기타 인프라를 포함합니다. | JDK에는 Java 애플리케이션을 개발하는 데 사용되는 Javadoc 및 아카이버와 같은 도구가 포함되어 있습니다. |
6 | JRE는 독립형 프로그램으로 설치할 수 있습니다. | JDK는 별도의 설치 프로그램이며 JRE와 함께 제공됩니다. |
결론
이 튜토리얼에서는 JRE (Java Runtime Environment) 및 Java 컴파일러와 함께 번들로 제공되는 JDK (Java Development Kit)에 대해 자세히 설명했습니다. JRE에는 Java 컴파일러가 생성 한 바이트 코드를 기계 별 코드로 변환하는 역할을하는 JVM (Java Virtual Machine)이 포함되어 있습니다.
Java 언어를 포함한이 모든 것은 Java 애플리케이션을 실행하는 데 도움이되는 환경 인 Java 플랫폼이라는 상위 엔티티의 구성 요소입니다. 또한 여기서는 Java 프로그램의 실행뿐만 아니라 JVM의 자세한 아키텍처와 작동에 대해서도 논의했습니다.
=> 여기에서 Java Beginners Guide를 살펴보십시오.