JDK - Java Development Kit
JDK 의 구성
이미지출처 : https://inpa.tistory.com/entry/JAVA-%E2%98%95-JDK-JRE-JVM-%EA%B0%9C%EB%85%90-%EA%B5%AC%EC%84%B1-%EC%9B%90%EB%A6%AC-%F0%9F%92%AF-%EC%99%84%EB%B2%BD-%EC%B4%9D%EC%A0%95%EB%A6%AC
JDK11 이후에는 JDK 에 JRE 가 포함되어 있다.
자바 개발도구와 실행도구, 라이브러리가 포함되어있다.
개발 도구들은 JDK 설치 폴더의 bin 폴더에, 라이브러리는 lib 폴더에 있다.
JRE - Java Runtime Environment
JRE 의 구성
자바 실행에 필요한 JVM과 라이브러리로 구성되어있다.
JVM - Java Virtual Machine
JVM 의 구성
- 클래스 로더 - Class Loader
- 실행 엔진 - Execution Engine
- 인터프리터 - Interpreter
- JIT 컴파일러 - Just-in-Time
- 가비지 콜렉터 - Garbage collector
- 런타임 데이터 영역 - Runtime Data Area
- 메서드 영역 - Method Area
- 힙 영역 - Heap
- 스택 영역 - Stack
- PC 레지스터 - Program Counter Register
- 네이티브 메서드 스택 - Native Method Stack
-- https://velog.io/@ddangle/Java-%EB%9F%B0%ED%83%80%EC%9E%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%98%81%EC%97%ADRuntime-Data-Area%EC%97%90-%EB%8C%80%ED%95%B4 추가 예정
JVM 의
- JAVA를 실행시켜주는 가상머신이다.
- 모든 JAVA 프로그램은 JVM을 통해서 실행된다.
- JVM 으로 인해 JAVA 는 소스 플랫폼과 타겟 플랫폼이 달라도 JAVA 프로그램을 그대로 실행할 수 있다.
- 이는 JAVA 가 OS 에 종속되어 있지 않고 JVM을 거쳐 실행되기 때문이다.
JVM의 JAVA 실행 동작 순서 역할 - 보완필요
- 작성된 JAVA 소스 코드는 class 파일로 ( byte code ) 컴파일 된다.
- class 파일은 다시 JVM 을 통해 기계어 ( binary code ) 로 변환된다.
- 변환된 기계어를 CPU가 실행한다.
JIT
binary code / byte code 변환
java compile 및 실행하는 방법