2012년 1월 26일 목요일

JVM이란 무엇인가?


Java Virtual machine 에 들어가기 앞서 : - 
이름에서도 알수있듯이 물리적인 기계와 소통을 할수있도록 자바프로세스를 실행시키는 가상 머신이다. 

JRE는 java 기반의 API 와 JVM를 포함하고 있다. 
  • 당신의 java code를  java byte code로 컴파일하여 물리적인 기계가 이해할수 있게한다.
  • 오브젝트의 생성이나 가비지컬렉션같은 오브젝트 관리를 핸들링한다.

JVM 의 각각 구성요소
  • Heap memory:-
  • 힙 메모리는 JVM 머신 의 한 부분으로 오브젝트를 저장한다.
  • 오브젝트의 종류로는 멤버(전역)변수, 생성자, 메소드들이다.
  • 힙메모리의 기본크기는 64mb로 -Xmx(최대 힙사이즈), -Xms(초기 힙사이즈) 옵션을 이용하여 변경할수가 있다.
  • 참조하는 객체의 생명주기는 개체가 참조가 해제 됬을경우로써,
  • 가비지 컬렉션이 몇몇 알고리즘을 이용하여 오브젝트를 제거한다.
  • Stack Memory:-
  • 로컬(지역) 변수들이 상주해있다. 로컬변수의 생명주기는 메서드가 실행되는 일시적인 순간이다. 함수나 메서드가 종료되는순간 값이 제거된다.
  • 이것은 후입선출의 방식을 사용한다.
  • Method section:-
  • 이 구역은 현재 실행중인 바이트 코드들이 존재한다.
  • 바이트 코드가 실행된후, 포인트는 다음 바이트 코드를 가리킨다.
  • registers:-
  • 어떤 스택의 변수에 의해 활용된다.
각기 벤더에 따라서 다양한 JRE가 제공된다.
  • 1.JRocket JVM  BEA Systems가 개발한 JVM이다. (현재 오라클)
  • 2. Java HotSpot VM Sun Microsystems가 개발한 JVM이다.(현재 오라클)

댓글 없음:

댓글 쓰기