JVM(Java Virtual Machine)은 자바 가상머신이다.가상머신이란 뜻은 여러가지가 있지만, 대표적으로 물리적 머신을 소프트웨어로 유사하게 구현한 것이라고 할 수 있다.자바는 원래 WORA(Write Once, Run Anywhere)를 구현하기 위해 가상머
자바 바이트 코드란 자바 바이트 코드는 자바 가상머신이 실행하는 명령어 집합이다. 자바 소스코드가 컴파일러에 의해 변환되는 코드의 명령어 크기는 1바이트이다. 확장자는 .class이다. 자바 바이트 코드 명령어(Opcode) 자바 바이트 코드 명령어의 크기는 1바이트
클래스 로더란 JRE의 일부로써 자바 소스코드가 자바 컴파일러에 의해 컴파일된 결과인 자바 바이트 코드를 JVM의 메서드 영역(Method Area)으로 로드하는 역할을 한다.부트 스트랩 클래스로더(BootStrap ClassLoader)기본 클래스로더 중 가장 최상위
실행엔진(Execution Engine)은 클래스 로더에 의해 JVM으로 로드된 자바 바이트 코드들을 기계어로 변환시켜 명령어 단위로 실행하는 역할을 한다.플랫폼 독립성을 위해 바이트 코드를 해당 운영체제에 맞게 해석한다.실행엔진의 명령어 수행방식은 두 가지 방식이 있
자바 어플리케이션을 실행하기 위한 메모리 공간을 의미한다.어플리케이션을 시작하면 JVM이 기동되면서 시작 클래스의 바이트코드를 읽어서 JVM의 메모리에 쓰는데, 이 메모리를 Runtime Data Area라는 부르는 몇 가지 영역에 나눠서 관리한다.런타임 데이터 영역은
가비지 컬렉션(Garbage Collection)이란 어플리케이션이 실행중에 더이상 참조하지 않는 즉, 필요없는 메모리가 발생하게 되면, C언어에서는 개발자가 직접 malloc함수를 통해 메모리를 해제해야한다. 하지만, JVM기반의 자바나 코틀린에서는 JVM내의 가비