> Java > java지도 시간 > Java 실행 프로세스 이해 : 코드에서 실행까지

Java 실행 프로세스 이해 : 코드에서 실행까지

Patricia Arquette
풀어 주다: 2025-01-30 12:04:10
원래의
162명이 탐색했습니다.

Understanding the Java Execution Process: From Code to Execution Java는 플랫폼 독립성과 효율적인 실행으로 널리 알려져 있습니다. 이 기사에서는 인간이 읽을 수있는 코드 작성부터 다른 플랫폼에서 실행에 이르기까지 전체 Java 실행 프로세스를 안내합니다. JDK, JVM 및 JRE의 역할과 Java 프로그램을 컴파일하고 실행하는 데 관련된 단계를 다룰 것입니다.

1. 키 Java 구성 요소

실행 프로세스로 뛰어 들기 전에 Java의 세 가지 핵심 구성 요소를 이해하는 것이 필수적입니다.

JDK (Java Development Kit)

JDK는 본격적인 소프트웨어 개발 키트로 Java 프로그램을 작성, 컴파일 및 실행할 수 있습니다. 는 JVM (Java Virtual Machine) 및 JRE (Java Runtime Environment)와 Compiler (Javac)와 같은 개발을위한 필수 도구를 포함합니다. JDK는 개발자가 코드를 작성하고 컴파일하는 데 사용되며 나중에 JVM에서 실행됩니다.

  • JVM (Java Virtual Machine)

    JVM은 Java Bytecode를 실행하는 엔진입니다. 그것은 기본 하드웨어 및 운영 체제를 추상화하여 Java 플랫폼 독립적 인 것으로 만듭니다. Java 프로그램은 JVM이 해석하고 실행하는 바이트 코드로 컴파일되어 동일한 Java 프로그램이 JVM을 사용하여 모든 기계에서 실행할 수 있습니다.

      JRE (Java 런타임 환경)
    • JRE는 JVM을 포함하여 Java 프로그램을 운영하는 데 필요한 라이브러리와 리소스를 제공합니다. 는 Java 프로그램에 의존 할 수있는 String 및 Array와 같은 핵심 클래스가 포함되어 있습니다. JRE에는 컴파일러와 같은 개발 도구가 포함되어 있지 않으므로 Java 응용 프로그램을 실행하는 데 적합하지만 개발에는 적합하지 않습니다.
    2. Java 실행 프로세스
  • 1 단계 : 코드를 작성하십시오 는 일반적으로 .java 파일에 저장되는 Java 코드를 작성하여 시작합니다. 이 코드는 사람이 읽을 수 있으며 Java 구문을 따릅니다

      2 단계 : 코드를 컴파일합니다
    • 코드가 준비되면 JAVAC 컴파일러는 사람이 읽을 수있는 .java 코드를 바이트 코드 (.class 파일에 저장)로 변환하는 데 사용됩니다. 바이트 코드는 이진 형식으로 모든 운영 체제에서 동일합니다. 이 바이트 코드는 JVM이있는 모든 플랫폼에서 실행하여 플랫폼 독립성을 보장 할 수 있습니다.
  • 3 단계 : jvm
  • 로 바이트 코드를 실행하십시오
      3.1 바이트 코드로드
    • Java 프로그램을 실행하려고 할 때 JVM은 바이트 코드 (즉, .class 파일)를 메모리에로드합니다. 클래스 로더는 사용자가 제공 한 클래스 이름을 기반으로 클래스를 찾고로드 할 책임이 있습니다. 클래스를 찾을 수 없으면 ClassNotFoundException이 발생합니다. 클래스가 발견되면 JVM이 메모리에로드합니다. 클래스의 정적 메소드, 변수 및 데이터는 JVM 메모리의 특별한 부분 인 메소드 영역에 저장됩니다. 3.2 바이트 코드 실행 클래스가로드되면 JVM은 실행을 시작하기 위해 Main () 메소드 (프로그램의 진입 점)를 찾습니다. main () 메소드가 발견되면 실행 프로세스가 시작됩니다.
    • 3. 실행 메커니즘
    • JVM이 Bytecode를 실행하는 데 사용하는 두 가지 주요 접근법이 있습니다 : 통역사 및 JIT (Just-In-Time) 컴파일러.
    • 통역사 (느린)
    • 통역사 접근법에서 JVM은 바이트 코드를 한 줄씩 읽고 실행합니다. 메소드가 호출 될 때마다 JVM은 바이트 코드를 다시 발췌하며 동일한 메소드가 여러 번 다시 실행 될 수 있으므로 느리게 될 수 있습니다.
    • JIT (정시) 컴파일러 (더 빠른)
    • JIT 컴파일러는 바이트 코드를 기본 기계 코드로 컴파일합니다.이 기계 코드는 프로그램이 실행중인 플랫폼 및 기계에만 해당됩니다. 핫스팟이라는 기술을 사용하여 성능을 최적화합니다. 핫스팟은 자주 코드의 부분 (예 : 메소드)에 사용됩니다. 이것들은 JIT 컴파일러에 의해 식별되며 매번 해석하는 대신 JIT는 그것들을 기본 기계 코드로 컴파일합니다. 컴파일 된 기계 코드가 캐시되므로 동일한 메소드가 다시 필요한 경우 JVM은 캐시 된 기계 코드를 사용할 수 있으므로 더 빠른 실행을 초래할 수 있습니다.
  • 핫 스팟

핫스팟 기술은 JVM이 전체 클래스가 아니라 자주 사용되는 방법 만 컴파일하도록합니다. 이로 인해 장기 실행 응용 프로그램의 성능이 크게 향상됩니다 JVM은 매번 바이트 코드를 해석하는 대신 이러한 핫스팟을 실행하기 위해 기계 코드를 사용합니다.

  • 4. JVM 메모리 영역

    JVM은 실행 중 프로그램의 다른 부분에 대한 메모리를 할당합니다. 일부 주요 영역은 다음과 같습니다

    • 메소드 영역 : 클래스, 메소드 및 정적 변수에 대한 정보를 보유합니다. <:> 힙 영역 :
    • 런타임 중에 생성 된 개체를 저장합니다
    • <:> 스택 영역 : 는 로컬 변수 및 메소드 호출을 저장합니다 프로그램 카운터 (PC) : 실행중인 현재 명령을 가리키는 레지스터.
    • 5. 실행 흐름 요약
    • 코드 쓰기 : java 코드는 .java 파일로 작성됩니다 컴파일 : 코드는 Javac 컴파일러가 바이트 코드 (.class files)로 컴파일됩니다.
    • bytecode로드 : 클래스 로더를 사용하여 JVM은 바이트 코드를 메모리에로드합니다.
    <: :> 진입 점 찾기 :

  • jvm은 실행을 시작하기 위해 main () 메소드를 찾습니다.
통역사 또는 JIT를 통한 실행 :

통역사 :
    는 바이트 코드를 라인별로 실행합니다 (느린)
  • JIT 컴파일러 : 더 빠른 실행을 위해 핫스팟을 기본 기계 코드로 컴파일합니다 (빠른).
  • 바이트 코드, JVM 및 JIT 컴파일러의 조합은 Java가 플랫폼 독립적이고 효율적임을 보장합니다. Execution Flow는 해석자를 Simplicity를 위해 사용하고 성능 최적화를 위해 JIT 컴파일러를 사용하여 Java 프로그램이 다양한 플랫폼에서 효율적으로 실행될 수 있습니다. 요약 :
  • JVM은 Java 코드가 휴대 가능하고 효율적인지 확인하는 데 중요한 역할을합니다. 먼저 바이트 코드를로드 한 다음 통역사 (느린) 또는 JIT 컴파일러 (더 빠른)를 통해 실행합니다. JIT 및 핫스팟을 사용하여 JVM은 성능을 최적화하면서 다른 플랫폼에서 동일한 바이트 코드를 실행할 수있는 기능을 유지합니다.

위 내용은 Java 실행 프로세스 이해 : 코드에서 실행까지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿