2024/07/29 2

[JAVA] JIT 컴파일러가 필요한 이유, 자바 인터프리터와 차이점

바이트코드는 JVM의 실행 엔진에 의해 실행된다.공부를 하다보니, 인터프리터와 JIT컴파일러는 둘 다 JRE안에 속해있고바이트 코드를 기계어로 해석하는 점이 비슷해보였다.그럼 둘의 차이가 무엇일까? -> 자바 인터프리터는 바이트 코드를 한 줄씩 읽고 실행하는 방식으로 동작한다.이는 프로그램의 실행이 비교적 느릴 수 있지만, 실행 초기 단계에서는 빠른 시작을 제공한다.JIT컴파일러가 동작하기 전까지 실제로 인터프리터를 초기에 사용한다. ( 느리지만 빠른 시작) -> JIT (Just-In-Time) 컴파일러는 바이트 코드를 기계어로 동적으로 변환하여 실행 속도를 크게 향상시킨다.프로그램 실행 중 자주 사용되는 코드 부분(핫스팟)을 미리 컴파일하여 실행 속도를 최적화한다.JIT 컴파일러는 인터프리터가 처음에..

카테고리 없음 2024.07.29

[JAVA] 절차지향 언어와 가장 큰 차이점

대표적인 절차지향 언어인 C언어.자바 프로그램과 C언어의 가장 큰 차이점은 바로, 이다.환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져어떤 OS 환경에서도 실행될 수 있으며 플랫폼에 독립적일 수 있다.  => 이것은 C언어와 자바의 컴파일 방식의 차이가 있어 가능하다. C언어의 경우 : A.c —(compile)—> A.obj(binary체계의 기계어: 리눅스 기반으로 환경에 종속적이다. 윈도우 실행X)반면 자바 컴파일은 run하는 환경 기계어 다 다르니, 어느 환경에서든 돌아갈 수 있는 .class를 만든다.기계에 독립적인 중간 코드를 만드는 과정인 것이다.JAVA의 경우 : A.java —(compile)—> A.class(byte code체계의..