[JAVA] JAVA의 특성과 JVM 의 동작원리

김훈·2022년 1월 23일
0

[JAVA]

목록 보기
3/5

1. 자바란 무엇인가

  1. 가장 큰 특징은 바로 객체 지향적 프로그래밍 언어. (OOP : Object-Oriented-Programming)
  2. JVM을 통해 실행되기 때문에 OS에 상관없이 동작한다.
    • 그렇기 때문에 확장성과 호환성이 뛰어나다.
  3. JAVA는 스스로 메모리를 관리한다.
    - Garbage Collection(가비지 컬렉션)이 존재하기 때문에 사용하지 않는 메모리를 삭제한다.
  4. 뿐만 아니라 시스템에 상관없이 멀티쓰레드를 지원한다

2. 자바의 동작 과정

  1. 작성한 자바 소스를, 즉 .java 파일을 자바 컴파일러(JAVA Compiler)를 통해 자바 바이트 코드로 변환된다

  2. 자바 바이트 코드(.class) 를 JVM의 클래스로더에게 전달한다.

  3. 클래스로더는 동적로딩(Dynamic loading)을 통해 필요한 데이터를 로딩 및 링크하여
    런타임 데이터 영역(Runtime DaTA Area), 즉 JVM의 메모리에 위치시킨다

  4. 실행엔진(Execution Engine)는 JVM의 메모리에 위치한 바이트코드를 명령어 단위로 가져와 하나씩 실행 시킨다.


3. JVM이란 무엇인가

  1. JVM(Java Virtual Machine)
    : 자바 가상 머신

  1. Java의 Byte 코드를 OS에 맞게 실행해주는 역할 수행

4. JVM 구성요소 와 개념

  1. Class Loader : class 파일들을 묶어서 Runtime Data Area 로 적재하는 역할을 수행합니다. 자바 애플리케이션이 실행중일 때 이 작업이 수행된다고 하네요..!

  2. Runtime Data Area : 자바 메모리 공간 이라고 생각하시면 됩니다. 자바 애플리케이션 실행 시 사용되는 데이터들을 담아두는 영역입니다. OS로부터 할당받아 사용합니다.

  3. Execution Engine : 기계어로 변경해 명령어 단위로 실행하는 역할을 수행합니다.
    -> Interpreter(인터프리터) 방식 / JIT(Just - In - Time) 컴파일러 이용하는 방식 존재. 주로 이 둘을 병행한다.

    1. Interpreter 방식
      : 명령어 하나하나 실행함.

    2. JIT 방식
      : Byte 코드를 Native 코드로 변경해서 이 Native 코드를 실행함.

profile
작고 소중한 개발 노트

0개의 댓글