❓ JVM란?

1. JAVA와 OS 사이의 중개자
자바 응용 프로그램은 하드웨어나 운영체제와 통신하지 않고 JVM하고만 통신하고, JVM이 운영체제가 이해할 수 있도록 변환하여 전달하는 역할을 한다.
Java Virtual Machine, 해석 해보면 "가상 컴퓨터", 즉 컴퓨터 속 컴퓨터라고 생각하면 편하다. Java 어플리케이션이 어디서든 실행되기 위해 JVM을 사용한다.
자바 응용 프로그램은 운영체제에 독립적
JVM은 운영체제에 종속적
2. 메모리 관리, Garbage Collection
❓ Java는 Compiler 일까 Interpreter 일까?

자바는 Compiler와 Interpreter를 모두 사용한다.
❓ Java의 실행 과정

Java Compiler가 .java파일을 .class 라는 Java Bytecode로 변환
Class Loader를 통해 JVM내에 로드
Bytecode를 JVM이 OS가 이해할 수 있도록 해석