Java compiler / JVM
Java compiler / JVM
Java compiler란
- 자바 코드를 기계가 이해할 수 있는 언어로 바꾸는 byte code 컴파일러.
- .java 파일을 byte code인 .class 파일로 변환.
- Byte code는 OS가 이해할 수 있는 코드는 아니자만, JVM이 이해할 수 있음.
- Byte code의 각 명령어의 크기는 1 byte.
JVM이란
- Java Virtual Machine의 약자.
- Java byte code를 OS가 이해할 수 있는 기계어로 변환해주는 기계.
- JVM을 통해 java는 플랫폼, OS 독립적으로 수행 가능.
JVM 구성요소
- Class Loader: .class 파일을 JVM에 올리는 역할.
- Interpreter: .class 파일을 명령어 단위로 읽어서 수행하는 역할.
- JIT compiler: 인터프리터 방식으로 실행하다 적당한 시점에 byte code 전체를 컴파일하는 역할. 성능에 가장 큰 영향을 줌.
- Garbage Collector: 사용되지 않는 메모리를 해제하는 역할.
- Runtime Data Area: OS에서 할당받은 메모리 공간. 실제로 프로세스가 수행되는 곳.
References
- https://doozi0316.tistory.com/entry/1%EC%A3%BC%EC%B0%A8-JVM%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%9E%90%EB%B0%94-%EC%BD%94%EB%93%9C%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%EA%B2%83%EC%9D%B8%EA%B0%80
- https://kingofbackend.tistory.com/123