자바는 객체 지향 언어이면서 근본적으로 프로그래밍 언어임.
프로그래밍 언어로서의 자바의 변수가 메모리에 어떻게 저장되고 사용되는지, 메소드가 어떻게 호출되고 메모리에 어떤 변화를 일으키는지 살펴보자.
자바 프로그램의 개발과 구동 과저을 현실 세계에 비교해 표현하면 다음과 같다
현실 세계 | 가상 세계 (자바 월드) |
---|---|
소프트웨어 개발 도구 | JDK - 자바 개발 도구 : JVM용 소프트웨어 개발 도구 |
운영체제 | JRE - 자바 실행 환경 : JVM용 OS |
하드웨어 - 물리적 컴퓨터 | JVM - 자바 가상 기계 : 가상의 컴퓨터 |
일반적인 프로그래밍 언어의 메모리 사용 방식 : 코드 실행 영역 + 데이터 저장 영역
객체 지향 프로그램의 메모리 사용 방식 : 코드 실행 영역 + ( 스태틱(Static) 영역 + 스택(Stack) 영역 + 힙(Heap) 영역 ) ← T 메모리 구조