JVM
의 런타임 영역은 크게 아래와 같이 나눌 수 있다.
그림에 보여지는 영역외에 PC Register
, Native Method Stack
등 다른 영역이 있지만 메서드 영역
, 스택 영역
, 힙 영역
만 다뤄보겠다.
정적 영역 Static Area
라고도 불리며 클래스 변수와 메서드, 생성자 등이 메서드 영역
내 데이터 세그먼트
에 적재된다.코드 세그먼트
에 적재된다.PC Register
, Native Method Stack
과 함께 스레드 별로 생성된다.지역변수
와 매개변수
가 저장되는 공간.다음 코드 중 각각의 요소는 JVM 메모리 영역 중 어디에 적재되는지 알아보자.
public class Main {
public static void main(String[] args) {
Circle circle = new Circle(3.0);
circle.getArea();
}
}
--
public class Circle {
private double radius;
private static final double PI = 3.141592;
public Circle(double radius) {
this.radius = radius;
}
public double getArea() {
return this.radius * this.radius * PI;
}
}