자바공부하기 64
JVM 메모리 모델
메소드 영역(Method area)
- 공유 메모리 영역이라고도 한다.
- 클래스의 메소드에 대한 바이트코드, 클래스의 전역변수인 클래스 병수(static)위치
- JVM에서 실행되고 있는 모든 스레드에 의해 공유
- JVM은 복수개의 스레드가 메소드를 정상적으로 사용하기 위해 동기화(synchronization)기법 제공
- static 필드(클래스 변수)
: 각 클래스의 static 필드가 확보
: 사용을 위해 클래스 이름으로 호출 시 메모리에 적재
- 바이트 코드(메서드)
: 메서드의 실행 로직에 대한 바이트코드가 메모리로 적재되는 공간
: 실행 로직이 메모리에 적재되야 cpu가 fetch할 수 있음
: 자바의 모든 로직은 메서드에만 존재
* 클래스는 ㅣㄹ드와 메서드로만 구성되어있기 때문
: 메서드에 대한 바이트코드도 static 필드와 마찬가지로 클래스를 객체 생성할 시점에 메모리에 적재(예외: main())
- 장점
: 기동시간의 단축
: 끝까지 사용되지 않은 클래스(필드, 메서드)가 있을 경우 메모리를 절약
- 메서드 영역은 프로그램이 시행되기 시작되기 시작할 때부터 끝날 때까지 계속 존재하는 것이라고 보면 된다.
- 다른 메모리 영역과의 차이
: 스택(Stack)과 같이 필요에 의해 임시적으로 생성되고 사라지지도 않고 힙(Heap)안의 객체와 같이 실행 시 확보되지 않고 계속해서 정적으로 존재
: 또한 스택은 스레드 별로 존재한다.
'자바 > JAVA...Spring' 카테고리의 다른 글
JAVA공부하기 66. JVM 메모리 모델 (0) | 2015.05.07 |
---|---|
JAVA공부하기 65. JVM메모리 모델 (1) | 2015.05.06 |
자바공부하기 63. JVM 메모리 모델 (0) | 2015.05.06 |
자바공부하기 62. 생성자 예 (0) | 2015.05.04 |
자바공부하기 61] 생성자 예제 (0) | 2015.05.04 |