프로그램이 실행되면 JVM은 OS로부터 메모리를 할당 받고, 그 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. (크게 메소드 영역, 스택 영역, 힙 영역) 메소드 영역에 대해서 자세히 보면, 프로그램을 수행하기 위해 OS에서 할당받은 메모리 공간인 Runtime Data Area 안에 포함되어 있다.
출처: http://ict-nroo.tistory.com/19 [개발자의 기록습관]
다른 이름: Class 영역, Static 영역 등
정의
메소드 영역은 모든 JVM 스레드들에서 공유되는 '공유 영역'이다.
JVM 생성 시 만들어지는 영역이며
JVM의 ClassLoaders에 의해 로드된다.
메소드 영역에 올라가는 정보
클래스 정보: 필드/메소드의 개수, Super 클래스 이름, 인터페이스 이름, 버전
메소드 정보: 메소드와 생성자의 ByteCode
상수 풀(static 변수, final 변수, string 등): 클래스별로 로드되는 변수 정보들
String myString1 = “This is a string litteral”;
static final int MY_CONSTANT=2;
자바 바이트코드(bytecode): 자바 가상머신에 의해 실행되는 코드. 메소드의 바이트코드는 실행에 필요한 바이트코드 전부를 의미하며 자바 프로그램의 실행은 메소드 내에 정의된 문장들을 실행함으로써 수행된다.
다른 이름: Class 영역, Static 영역 등
정의 메소드 영역은 모든 JVM 스레드들에서 공유되는 '공유 영역'이다. JVM 생성 시 만들어지는 영역이며 JVM의 ClassLoaders에 의해 로드된다.
메소드 영역에 올라가는 정보
http://coding-geek.com/jvm-memory-model/ https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html http://codedragon.tistory.com/5297 http://ict-nroo.tistory.com/19