brunch

You can make anything
by writing

C.S.Lewis

by 김선우 Jun 14. 2016

JVM 메모리 구조


JVM은 컴파일의 결과물인 바이트 코드를 실행하기 위한 가상 머신이다. 컴파일된. class 파일들을 클래스 로더가 읽고 Runtime Data Area 에 올라가면 Execution Engine 이 바이트 코드를 읽게 된다. 










JVM의 메모리 구조는 메서드, 스택, 힙 영역이 있다. 

메서드 영역 : 런타임 시 생성된 모든 스레드가 공유하는 영역이다. JVM이 읽어 들인 각각의 클래스와 인터페이스에 대한 런타임 상수 풀, 필드와 메서드 정보, Static 변수, 메서드의 바이트코드 등을 보관한다


스택 영역 : 메서드, 지역변수, 파라미터 등이 저장된다. Stack Frame (스택, 큐 참고)이라는 자료구조가 생성되고, 스택 동장을 수행하다가 동작이 완료되면 메모리에서 사라진다. 


힙 영역 : 인스턴스 또는 객체를 저장하는 공간으로  가비지 컬렉션의 대상이 된다. JVM 성능 이슈에서 언급이 가장 많이 되는 영역이다. 






이미지 출처 

JVM :  https://www.google.co.kr/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&ved=0ahUKEwiIoYSfqKXNAhUJ2hoKHT7kA2kQjhwIBQ&url=http%3A%2F%2Fwww.santhoshreddymandadi.com%2Fjava%2Fjava-virtual-machine-jvm-architecture.html&psig=AFQjCNGwv1rFmORc7k6nWak38cmSvIUvjA&ust=1465917981991532

JVM Momory Structure : http://abacus.tistory.com/230

Cover : http://www.slideshare.net/BaabtraMentoringPartner/jvm-37376383

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari