Java 아키텍처의 구성 요소는 무엇입니까?



Java Architecture는 컴파일 및 해석 프로세스를 결합합니다. 이 기사에서는 Java 아키텍처의 다양한 구성 요소에 대해 설명합니다.

Java Architecture는 컴파일 및 해석 프로세스를 결합합니다. 그것은 공식화하는 동안 관련된 다양한 프로세스를 설명합니다 . 주제를 시작하기 전에이 기사의 의제를 소개하겠습니다.

아래에 언급 된 포인터는 토론 주제입니다.





Java 아키텍처가 정확히 무엇인지 이해하는 것으로 시작하겠습니다.



Java 아키텍처 란?

여기서는 간단한 단계로 Java 아키텍처를 설명합니다.

int 배열 C ++ 정렬
  • 자바에는 컴파일과 해석 과정이 있습니다.
  • 작성된 코드 , Java 컴파일러에 의해 수행되는 바이트 코드로 변환됩니다.
  • 그런 다음 바이트 코드는 JVM에 의해 기계 코드로 변환됩니다.
  • 기계 코드는 기계에 의해 직접 실행됩니다.

이 다이어그램은 Java 코드 또는 정확하게 Java 아키텍처의 내부 작업을 보여줍니다!



JVM-자바 아키텍처-Edureka이제 자바 아키텍처에 대해 좀 더 깊이 파고 들어 다양한 .

Java 아키텍처의 구성 요소

Java 언어에는 세 가지 주요 구성 요소가 있습니다. JVM, JRE 및 JDK .

각각 Java Virtual Machine, Java Runtime Environment 및 Java Development Kit.

하나씩 자세히 설명하겠습니다.

자바 가상 머신 :

WORA에 대해 들어 보셨습니까? (한 번만 실행). 음, Java 애플리케이션은 모든 플랫폼에서 코드를 실행할 수 있기 때문에 WORA라고합니다. 이것은 JVM 때문에 수행됩니다. JVM은 Java 프로그램을 실행하기위한 환경을 제공하는 Java 플랫폼 구성 요소입니다. JVM은 바이트 코드를 Java 프로그램이 실행되는 기계에서 실행되는 기계 코드로 해석합니다.

따라서 간단히 말해 JVM은 다음 기능을 수행합니다.

  • 코드를로드합니다.
  • 코드 확인
  • 코드 실행
  • 런타임 환경 제공

이제 JVM 아키텍처를 보여 드리겠습니다. 간다!

설명:

클래스 로더 : 클래스 로더는 JVM의 하위 시스템입니다. 클래스 파일을로드하는 데 사용됩니다. Java 프로그램을 실행할 때마다 클래스 로더가 먼저로드합니다.

jframe을 만드는 방법

수업 방법 영역 : JVM의 Data Area 중 하나로 Class 데이터가 저장됩니다. 정적 변수, 정적 블록, 정적 메서드, 인스턴스 메서드가이 영역에 저장됩니다.

더미 : JVM이 시작될 때 힙이 생성됩니다. 응용 프로그램이 실행되는 동안 크기가 증가하거나 감소 할 수 있습니다.

스택 : JVM 스택을 스레드 스택이라고합니다. 단일 실행 스레드를 위해 생성되는 JVM 메모리의 데이터 영역입니다. 스레드의 JVM 스택은 스레드가 다양한 요소 (예 : 로컬 변수, 부분 결과 및 메서드 및 반환 호출을위한 데이터)를 저장하는 데 사용됩니다.

네이티브 스택 : 응용 프로그램에서 사용되는 모든 기본 메서드를 포함합니다.

실행 엔진 :

  • JIT 컴파일러
  • 가비지 수집기

JIT 컴파일러 : 그만큼 JIT (Just-In-Time) 컴파일러 런타임 환경의 일부입니다. 런타임에 바이트 코드를 기계 코드로 컴파일하여 Java 애플리케이션의 성능을 향상시키는 데 도움이됩니다. JIT 컴파일러는 기본적으로 활성화됩니다. 메서드가 컴파일되면 JVM은 해당 메서드의 컴파일 된 코드를 직접 호출합니다. JIT 컴파일러는 해당 메서드의 바이트 코드를 기계 코드로 컴파일하여 '적시에'실행되도록 컴파일합니다.

가비지 수집기 : 이름에서 알 수 있듯이 가비지 수집기 미사용 재료를 수집하는 것을 의미합니다. 글쎄, JVM에서이 작업은 가비지 수집에 의해 수행됩니다. JVM 힙 공간에서 사용할 수있는 모든 개체를 추적하고 원하지 않는 개체를 제거합니다.
가비지 수집기는 Mark 및 Sweep이라는 두 가지 간단한 단계로 작동합니다.

  • Mark – 가비지 수집기가 사용중인 메모리와 그렇지 않은 메모리를 식별하는 곳입니다.
  • Sweep – 'mark'단계에서 식별 된 개체를 제거합니다.

자바 런타임 환경 :

JRE 소프트웨어는 Java 프로그램을 실행할 수있는 런타임 환경을 구축합니다. JRE는 Java 코드를 가져 와서 필요한 라이브러리와 결합하고이를 실행하기 위해 JVM을 시작하는 온 디스크 시스템입니다. JRE에는 Java 프로그램을 실행하는 데 필요한 라이브러리와 소프트웨어가 포함되어 있습니다. JRE는 JDK (나중에 공부할 예정)의 일부이지만 별도로 다운로드 할 수 있습니다.

자바 개발 키트 :

JDK (Java Development Kit)는 Java 애플리케이션 및 애플릿을 개발하는 데 사용되는 소프트웨어 개발 환경입니다. 여기에는 JRE 및 여러 개발 도구, 인터프리터 / 로더 (java), 컴파일러 (javac), 아카이버 (jar), 문서 생성기 (javadoc)가 다른 도구와 함께 포함되어 있습니다.

다이어그램에 표시된 파란색 영역은 JDK입니다. 이제 여러분 모두에게 개발 도구에 대해 자세히 설명하겠습니다.

자바 : 모든 자바 애플리케이션의 실행기입니다.
javac : 자바 프로그래밍 언어의 컴파일러.
javadoc : API 문서 생성기입니다.
항아리 : 모든 JAR 파일을 생성하고 관리합니다.

C ++ 소스 코드 정렬 병합

Java 아키텍처로 이동하여 Java 플랫폼이 어떻게 독립적인지 이해합시다.

Java 플랫폼은 어떻게 독립적입니까?

플랫폼 독립적이라고 불리는 프로그래밍 언어는 언제입니까? 글쎄, 개발 및 컴파일과 관련하여 사용 가능한 모든 운영 체제에서 실행할 수있는 경우에만 가능합니다.
지금, 자바 바이트 코드 때문에 플랫폼 독립적입니다. 바이트 코드가 정확히 무엇인지 말씀 드리겠습니다. 간단히 말해서
바이트 코드는 기계가 이해할 수있는 JVM의 코드입니다.
Java에서 바이트 코드를 실행하면 플랫폼에 독립적 인 언어임을 입증합니다.
여기에서는 자바 바이트 코드 실행 과정과 관련된 단계를 보여 드리겠습니다.

다음은 관련된 단계에 대한 설명입니다.

sample.java → javac (샘플. 클래스) → JVM (sample.obj) → 최종 출력

첫 번째 소스 코드는 Java 컴파일러에서 사용되며 .class 파일로 변환됩니다. 클래스 파일 코드는 바이트 코드 형식이며 해당 클래스 파일은 JVM에서 객체 파일로 변환하는 데 사용됩니다. 그 후 화면에서 최종 출력을 볼 수 있습니다.

Java 아키텍처 기사에서 계속 진행하여 자바의 JIT .

자바의 JIT

일반적으로 JIT로 알려진 Just In Time 컴파일러는 기본적으로 런타임에 Java 기반 애플리케이션의 성능 최적화를 담당합니다. 응용 프로그램의 성능은 컴파일러에 따라 다릅니다.
다음은 진행되는 내부 프로세스를 보여주는 간단한 다이어그램입니다.

JIT 컴파일러-Java 아키텍처-Edureka

JIT 컴파일러는 메소드의 바이트 코드를 기계 코드로 컴파일하여 'Just In Time'을 실행하도록 컴파일합니다. 메서드가 컴파일되면 JVM은 해당 메서드의 컴파일 된 코드를 직접 호출합니다.
더 자세히 살펴 보겠습니다.
바이트 코드는 제공된 명령어 세트에 따라 적절한 기계 명령어로 해석되거나 컴파일되어야합니다. 또한 명령어 아키텍처가 바이트 코드 기반 인 경우 직접 실행할 수 있습니다. 바이트 코드를 해석하면 실행 속도에 영향을줍니다.
성능을 향상시키기 위해 JIT 컴파일러는 런타임에 JVM (Java Virtual Machine)과 상호 작용하고 적절한 바이트 코드 시퀀스를 원시 기계 코드로 컴파일합니다 (다이어그램에 표시됨). JIT 컴파일러를 사용하는 동안 하드웨어는 JVM이 동일한 바이트 코드 시퀀스를 반복적으로 해석하고 번역 프로세스에 오버 헤드를 발생시키는 것과 비교하여 네이티브 코드를 실행할 수 있습니다.

이것으로 Java 아키텍처에 대한이 기사의 끝 부분에 도달했습니다. 위에서 논의한 주제가 Java 지식에 가치를 더하기를 바랍니다. 더 많은 기사를 기대 해주세요!

이제 Java의 기본 사항을 이해 했으므로 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 'Java Architecture and its components'블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 연락 드리겠습니다.