자바와 다른 언어의 가장 큰 차이이자 장점은 운영체제에 독립적이라는 사실이다. 자바로 만들어진 프로그램은 JVM과 통신하여 구동하여 운영체제에 독립적을 수 있게 되는 것이다.
이 JVM의 역할 중 자바 프로그램을 구동하기위해 메모리를 할당하는 방식에 대한 내용이다.
JVM은 주로 3가지 영역(Method Area, Stack, Heap)으로 메모리를 나눠두었다.
1) Method Area : 클래스 데이터와 클래스 변수 저장
2) Stack : 호출된 메서드(지역변수)를 위한 임시 메모리 공간 제공 및 중간 결과 저장 * 임시공간이므로 메서드 호출이 종료되면 사라짐
3) Heap : 인스턴스(객체)와 인스턴스 변수 생성