Java Virtual Machine에 대해 알아야 할 사항은 무엇입니까?



이 블로그는 아키텍처의 구성 요소와 JVM, JRE 및 JDK의 주요 차이점과 함께 Java 가상 머신의 개념을 자세히 다룹니다.

언어는 아주 오랫동안 IT 산업에서 거인이었습니다. 나머지 프로그래밍 언어보다 더 나은 몇 가지 최고의 개념이 있습니다. 이러한 개념 중 하나가 Java 가상 머신입니다.이 기사에서는 다양한 측면에 대해 학습합니다. 가상 머신에 대해 자세히 설명합니다. 다음은이 블로그에서 논의 된 주제입니다.

Java Virtual Machine이란 무엇입니까?

Java 가상 머신은 Java 바이트 코드가 실행되는 런타임 환경을 제공하는 플랫폼 독립적 추상 머신입니다.





Java 바이트 코드를 기계가 읽을 수있는 언어로 변환하는 Java 런타임 환경의 일부입니다. 메인 Java 프로그램에있는 것은 실제로 Java 가상 머신에 의해 호출됩니다.

jvm-자바 가상 머신-Edureka

Java Virtual Machine이 필요한 이유는 무엇입니까?

Java와 관련된 모든 개발에 매우 ​​필요한 작업을 수행하려면 Java 가상 머신이 필요합니다. 다음은 JVM (Java Virtual Machine)이 수행하는 몇 가지 작업입니다.



  • 코드를로드합니다.
  • 코드 검증
  • 코드 실행
  • 애플리케이션을위한 런타임 환경을 제공합니다.
  • 메모리 영역
  • 레지스터 세트
  • 가비지 수집 힙을 제공합니다.
  • 치명적인 오류보고
  • 제공합니다 수업 파일 형식

이러한 모든 작업에서 Java 가상 머신은 Java 개발의 필수 부분입니다. Java 가상 머신 아키텍처의 도움을 받아 작동 방식을 이해해 보겠습니다.

자바 가상 머신 아키텍처

Java 가상 머신 아키텍처는 매우 간단하며 메모리 영역, 클래스 로더 및 다른 구성 요소 중 실행 엔진이 있습니다. 각각에 대해 자세히 논의하겠습니다.

ClassLoader

클래스 파일을로드하는 데 사용되는 하위 시스템입니다. Java에서 프로그램을 실행할 때마다 ClassLoader에 의해 먼저로드됩니다. 주요 기능에는 초기화, 연결 및로드가 포함됩니다. 다음은 Java에 내장 된 클래스 로더입니다.



    • 부트 스트랩 ClassLoader – rt.jar 파일을로드하는 Extension ClassLoader의 수퍼 클래스입니다.

    • 신장 ClassLoader – 디렉토리에있는 jar 파일을로드합니다.

    • 시스템 / 응용 ClassLoader – 클래스 경로에서 클래스 파일을로드합니다.

    • 로딩 작업 – 먼저 classLoader는 .class 파일을로드하고 메서드 영역에 저장된 바이너리 형식의 해당 데이터를 생성합니다.

    • 연결 작업 – 로드 후 준비, 확인 및 해결합니다. JVM은 클래스 변수에 메모리를 할당하고 메모리를 기본값으로 초기화합니다. .class 파일의 정확성을 보장하고 확인에 실패하면 런타임 예외 오류가 발생합니다.

    • 초기화 – 모든 정적 변수는이 단계에서 코드 블록에 정의 된 값으로 할당됩니다.

JVM 메모리

  • 방법 영역 – 코드, 필드 데이터, 런타임 상수 풀, 메서드 데이터 등과 같은 각 클래스의 구조를 저장합니다.

  • 힙 – 객체는 런타임시 힙에 할당됩니다.

  • JVM 언어 스택 – 지역 변수와 결과를 저장합니다. 결과를 호출하고 반환하는 데 중요한 역할을합니다. 메소드가 호출 될 때마다 프레임이 생성되고 호출이 종료되거나 완료되는 즉시 소멸됩니다.

  • PC 레지스터 – 실행중인 JVM 명령의 주소 또는 위치가 있습니다.

  • 네이티브 메서드 스택 – 애플리케이션에서 사용되는 모든 네이티브 메서드는 네이티브 메서드 스택에 있습니다.

  • 실행 엔진 – 실행 엔진에는 가상 프로세서, 인터프리터 및 JIT 컴파일러.

  • 네이티브 방법 상호 작용 - 이것은 제공합니다.

이제 JVM의 아키텍처를 이해 했으므로 실행 프로세스와 코드 컴파일을 살펴 보겠습니다.

실행 프로세스

다음 단계는 Java 코드를 실행하고 컴파일하는 동안 발생합니다.

  • 주요 방법은 단일 파일에 저장되고 다른 방법은 다른 파일에 저장됩니다.
  • 컴파일 후 C와 달리 링크없이 바이트 코드가있는 해당 .class 파일을 제공합니다.
  • 실행 중에 클래스 파일은 Classloader를 사용하여 위반에 대해 확인됩니다.
  • 그런 다음 바이트 코드는 해당하는 원시 기계 코드로 변환됩니다. 이것이 Java가 비교적 느린 이유이기도합니다.

이제 실행 작동 방식을 알았으니 JDK, JRE 및 JVM의 차이점을 살펴 보겠습니다.

JDK, JRE 및 JVM의 차이점

다음은 몇 가지 중요한 차이점입니다. JDK , JVM 및 JRE.

  1. JDK는 Java 개발 키트를, JRE는 Java 런타임 환경을 나타냅니다.
  2. JDK는 개발 용이고 JRE는 런타임 환경 용입니다.
  3. JVM은 모든 Java 프로그램을 실행하기위한 JDK 및 JRE의 필수 부분입니다.
  4. JVM은 Java 프로그래밍의 필수 부분이며 플랫폼 독립성을 제공합니다.

이것으로 Java 가상 머신에 대해 자세히 배운이 기사의 끝으로 이동합니다. 이 튜토리얼에서 여러분과 공유 한 모든 내용이 명확하기를 바랍니다.

html로 알림을 만드는 방법

'Java Virtual Machine'에 대한이 기사가 관련이있는 경우 Edureka 는 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사입니다.

우리는 여정의 모든 단계에서 귀하를 돕고 Java 개발자가 되고자하는 학생과 전문가를 위해 설계된 커리큘럼을 마련합니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으시면 'Java Virtual Machine'의 댓글 섹션에 모든 질문을 남겨 주시면 기꺼이 답변 해 드리겠습니다.