Java 동작 원리

ryan·2022년 12월 28일
0
post-custom-banner

자바 동작 과정

자바 컴파일러

  • 작성한 자바 코드를 자바 JVM이 이해할 수 있게 자바 바이트 코드로 변환.
  • 자바를 설치하면 javac.exe 파일 형태로 설치됨

자바 바이트 코드

  • 작성한 자바 소스 코드를 JVM이 이해할 수 있게 이진 표현법으로 변환한 코드
    • 특정 하드웨어에 대한 의존성을 줄인다.
    • 파일의 확장자는 .class

자바 가상 머신(JVM)

  • 자바 바이트 코드를 해석,실행 할 수 있는 주체.
    • 자바로 작성된 모든 프로그램은 자바 가상 머신에서만 실행됨.
    • 다른 운영체제에서 실행하더라도 JVM만 설치되어 있다면 프로그램이 동작할 수 있음.
    • 자바 코드가 실행되기 위해서는 JVM을 거쳐야만 하기 때문에, 상대적으로 성능이 느리다는 단점이 있음.
  • 자바 애플리케이션을 클래스 로더를 통해 읽어 들여서 자바 기본 API를 동적으로 연결해 자바 프로그램을 실행.
  • 기술적 정의 : 코드를 실행하고 코드에 대한 런타임 환경을 제공하는 소프트웨어 프로그램의 사양
  • 일반 정의 : 자바 프로그램을 실행하는 방법.

자바 가상 머신의 구성

  • 자바 인터프리터

    • 자바 컴파일러에 의해 변환된 코드를 읽고 해석.
  • 클래스 로더

    • 동적으로 클래스를 로딩해주는 역할.
  • JIT 컴파일러(Just-In-Time compiler)

    • 실행 중인 런타임에 기계어로 변역해주는 컴파일러 역할.
    • 동적 번역이라고도 불리며 프로그램의 실행 속도를 향상시키기 위함.
    • 자바 컴파일러가 생성한 자바 바이트 코드를 런타임에 기계어로 번역해주는 역할.
  • 가비지 컬렉터

    • 사용하지 않는 메모리를 자동으로 회수
    • 클래스 인스턴스는 사용자 코드에 의해 명시적으로 생성. 자동적으로 파기됨.
    • 개발자가 메모리를 관리하지 않아도 된다는 장점이 있음.

참고

profile
프론트엔드 개발자
post-custom-banner

0개의 댓글