JAVA 기초 (1) - JAVA의 작동방식과 JVM의 구조

j00r6·2023년 10월 12일
0

JAVA

목록 보기
1/1

JAVA의 작동방식

자바의 작동방식을 완벽히 이해하려면 JDK JRE 외에도 그안에서 작동하는 방식
자바 컴파일러(javac)와 자바 어셈블리어(javap)를 활용해 변환된 .class 확장자로 만들어진 class 파일이 전달되고 어쩌구 저쩌구
많은 과정이 있지만 오늘은 JVM안에서 무슨일이 벌어지는 지를 간단하게 알아보도록 하겠습니다.

JVM 이란?

JAVA언어로 작성된 코드를 실행하는데 필요한 일종의 가상머신이다.

클래스 로드

JVM의 역할은 사람이 작성한 JAVA코드를 자바 컴파일러(javac)와 자바 어셈블리어(javap)가
Byte Code로 변환해주면 .class 확장자 형태로 변환된 파일을 받아와 코드를 실행할 준비를 한다.

JVM이 Class Loader를 통해 해당파일을 로드하는 과정을 클래스 로드 라고 부른다.

JVM의 구조

Runtiem Data Area

실행할 준비를 할때 JVM은 시스템으로부터 메모리를 할당 받는데
할당받는 메모리의 영역을 Runtime Data Area 라고 부른다.

Runtime Data Area의 각 영역

JVM이 메모리를 할당 받는 영역 Runtime Data Area
다시 역할에 맞게 5가지 영역으로 분리된다.
그 중 상대적으로 중요한 역할을 하는 Method Area Heap Area Stack Area 가 있다.

각 영역의 역할

위에서 언급한 Method Area Heap Area Stack Area 3가지 영역은
좀더 세부적인 작동 방식이 있지만 오늘은 대략적으로 어떤 역할을 수행하는지 알아보겠습니다.

Method Area

클래스 파일의 바이트코드가 로드된다. (클래스 로딩이 이루어진다)

Heap Area

참조형(Reference Type)의 데이터 타입을 갖는 객체(new를 통해 생성된 객체)
배열 등은 Heap 영역에 데이터가 저장된다.

Stack Area

메서드 내에서 정의하는 기본 자료형, Heap에서 생성된 참조형 객체의 값이 저장된다.


참고 사이트

블로그 - JAVA 작동방식 심화
블로그 - 자바 기초 참고
블로그 - 자바 기초 참고
기술문서 - How the JVM Locates, Loads, and Runs Libraries
기술문서 - Class ClassLoader
기술문서 - Java Virtual Machine Guide


다음 내용
Garbage Collector의 역할과 동작방식

0개의 댓글