기초 JAVA 교육과정 ] JVM메모리 모델(2)

 

기초 JAVA 교육과정 ] JVM메모리 모델(2)

 

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

 

 

 

 

JVM메모리 모델(2)

 

 

 - 메소드 영역 (Method area)

 

  : 공유 메모리 영역이라고도 한다.

 

  : 클래스의 메소드에 대한 바이트코드, 클래스의 전역변수인 클래스 변수(static) 위치

 

  : JVM에서 실행되고 있는 모든 스레드에 의해 공유

 

  : JVM은 복수개의 스레드가 메소드를 정상적으로 사용하기 위해 동기화(synchronization)기법 제공

 

  : static 필드(클래스 변수)

   -> 각 클래스의 static 필드가 확보

   -> 사용을 위해 클래스 이름으로 호출 시 메모리에 적재

 

  : 바이트 코드(메소드)

   -> 메소드의 실행 로직에 대한 바이트 코드가 메모리로 적재되는 공간.

   -> 실행 로직이 메모리에 적제 되여 cpu가 fetch 할 수 있음

   -> 자바의 모든 로직은 메소드에만 존재

        => 클래스는 필드와 메소드로만 구성되어있기 때문에

   -> 메소드에 대한 바이트코드도 static 필드와 마찬가지로 클래스를 객체 생성할 시점에 메모리에 적재(예외 : main())

 

  : 장점

   -> 기동시간의 단축

   -> 끝가지 사용되지 않는 클래스(필드, 메소드)가 있을 경우 메모리를 절약

 

  : 메소드 영역은 프로그램이 시행되기 시작되기 시작할 때부터 끝날 때까지 계속 존재하는 것이라고 보면 된다.

 

  : 다른 메모리 영역과의 차이

   -> 스택(Stack)과 같이 필요에 의해 임시적으로 생성되고 사라지지도 않고 힙(Heap)안의 객체와 같이 실행 시 확보되지 않고 계속해서 정적으로 존재

   -> 또한 스택은 스레드 별로 존재한다.

 

  :

 

+ Recent posts