자바 프로그램의 구동 원리

  1. 소스코드를 작성 (.java 확장자의 소스 파일)

  2. 컴파일러(javac.exe)가 바이트코드로 변환한다. (.class 확장자의 클래스 파일)

  3. 런처(java.exe)로 자바 가상 머신을 구동시킨다.

  4. 자바 가상 머신(JVM)이 바이트코드를 해석하여 자바 프로그램이 실행된다.

 

자바 가상 머신 (JVM, Java Virtual Machine)

  • 자바 프로그램의 클래스 파일들은 운영체제에서 직접 동작하는 것이 아니라 "JVM" 위에서 동작하기 때문에 윈도우든 리눅스든 맥이든 어느 운영체제에서 실행 시킬 수 있다.

 

자바의 메모리 영역

  • 5개의 영역으로 분류되지만 메서드, 힙, 스택 영역을 보겠습니다.

메모리 영역 용도 보존 기간
메서드
= 클래스
= 스태틱
- 가장 먼저 데이터가 저장되는 공간
- 클래스 로더에 의해 로딩된 클래스, 메서드,     클래스 변수(static), 전역 변수가 저장
- 프로그램의 시작부터 종료까지 메모리에
   남는다.
- 명시적인 Null 선언시 GC 청소 대상
- 런타임 시 결정되는 참조형 데이터 타입
   저장 되는 공간
- new 연산자를 통해 생성된 객체
   저장 되는 공간
- 객체가 더 이상 안쓰이거나, 명시적인 Null
   선언 시 GC 청소 대상
스택 - 컴파일 시 결정되는 기본형 데이터 타입
   저장 되는 공간
- 지역변수, 매개변수, 리턴값, 참조변수 등이
   저장됨
- { } 또는 메서드가 끝날 때까지

+ Recent posts