네트워크 상에서 쓸 수 있도록 미국의 썬 마이크로 시스템즈가 개발한 객체지향 프로그래밍 언어
프로그램 실행시 JVM은 운영체제로부터 해당 프로그램이 필요로 하는 메모리를 할당받고, 할당받은 메모리를 용도에 따라 여러 영역으로 나누어 관리함
자바 컴파일러(javac)가 자바 소스코드(.java)를 읽어들여 자바 바이트코드(.class)로 변환시킴
클래스로더(Class Loader)를 통해 클래스 파일들을 JVM으로 로딩
로딩된 클래스 파일들은 실행 엔진(Execution engine)을 통해 컴퓨터가 읽을 수 있는 기계어로 해석됨
해석된 바이트코드는 Runtime Data Areas(프로그램 수행을 위해 운영체제에서 할당받은 메모리 공간)에 배치되어 실질적인 수행이 이루어지게 됨. 이러한 실행과정 속에서 JVM은 필요에 따라 Thread Synchronization과 GC같은 관리작업을 수행함.
참고:
신입 개발자 기술면접 질문 정리 - 자바
[JAVA] 자바(JAVA)란? - 배워서 남주자 - 티스토리
[JAVA] 자바의 정의와 특징 및 SOLID