메모리 관리를 직접 제어한다. 프로그래머가 메모리 할당과 해제를 수동으로 관리
Garbage Collector
라는 별도 프로그램이 돌면서 메모리를 관리한다. 메모리 영역에 직접 접근하지 않고 JVM이라는 가상 머신을 이용해서 간접적으로 접근한다.
클래스의 정보, 정적 변수, 메소드 코드 등이 저장되는 곳. JVM이 클래스를 로드할 때 메모리에 할당된다.
객체들이 동적으로 할당되는 곳. 개발자가 직접 메모리 할당 및 해제를 다루지 않아도 된다. 가비지 컬렉션은 더 이상 참조되지 않는 객체들을 자동으로 탐지하여 해제한다.
각 스레드마다 별도의 스택이 생성되며, 스레드의 호출 스택 프레임과 지역 변수가 저장된다.
현재 실행 중인 JVM 명령의 주소를 저장
자바 코드가 아닌 네이티브 코드(보통 C나 C++ 코드)를 실행하는데 사용
Java는 가비지 컬렉션과 같은 기능을 통해 메모리 누수(memory leak)를 줄이고, 개발자가 메모리 관리에 신경을 덜 쓸 수 있도록 도와준다.