티스토리 뷰
728x90
반응형
main 메서드는 프로그램이 실행되는 시작점입니다. 이번에는 main() 메서드가 실행될 때 메모리가 어떤 일이 나타나는지 알아보겠습니다.
이름 | 설명 |
JDK | 자바 개발 도구 |
JRE | 자바 실행 환경 |
JVM | 자바 가상 기계 |
Step 01 - JRE의 실행
JRE는 먼저 Class내부에 main() 메서드가 있는지 확인 합니다. JRE는 Test 클래스에서 main() 메서드가 존재하면 JRE는 프로그램 실행을 위한 사전 준비에 착수하게 됩니다. 그렇게 되면 가상 기계인 JVM에 전원을 넣어 부팅하게 됩니다. 부팅된 JVM은 목적 파일을 받아 그 목적 파일을 실행하게 됩니다.
Step 02 - JVM의 실행 - 스태틱 영역에 할당하기
JVM이 맨 처음에 하는 일은 전처리하고 하는 과정입니다. 모든 자바 프로그램은 기본적으로 java.lang패키지를 포함하게 되는데 JVM은 java.lang 패키지를 스태틱 영역에 올려놓게 됩니다.
다음으로 JVM은 모든 클래스와 import 패키지까지 스태틱 영역에 올려놓습니다.
Step 03 - JVM의 실행 - 스택 영역에 할당하기
main() 메서드가 실행되기 위해서는 스택 영역에 할당됩니다. 그런 다음 메서드의 인자 args를 저장할 변수 공간을 스택 영역의 맨 밑에 확보해야합니다. 즉 메서드의 인자를 변수 공간에 할당하는 것입니다. 그제서야 main() 메서드가 실행되게 됩니다.
Step 03 - 01 - main() 내부에 변수 할당
main() 메서드 스택 영역 안에 밑에서부터 변수 공간을 마련하게 됩니다.
Step 04 - JVM의 실행 - 힙 영역에 할당하기
객체 멤버 변수들은 객체와 함께 가비지 컬렉터라고 하는 힙 메모리 회수기에 의해 일생을 연맹하게 됩니다.
728x90
반응형
'JAVA > JAVA기본' 카테고리의 다른 글
JAVA - 리플렉션 (Reflection)이란? (0) | 2021.11.28 |
---|---|
JAVA - Garbage Collection이란? (0) | 2021.11.28 |
JAVA - JVM이란 무엇인가 (0) | 2021.11.27 |
JAVA - 이미지 base64를 디코딩하여 파일 생성 후 DB에 디렉토리 저장 (0) | 2021.07.13 |
JAVA - 클래스 멤버(static)와 객체 멤버(인스턴스) (0) | 2021.06.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- transactional outbox pattern
- spring boot redisson sorted set
- @ControllerAdvice
- spring boot redis 대기열 구현
- polling publisher spring boot
- spring boot 엑셀 다운로드
- 공간 기반 아키텍처
- space based architecture
- spring boot excel download paging
- spring boot excel download oom
- spring boot redisson destributed lock
- redis sorted set으로 대기열 구현
- pipe and filter architecture
- java ThreadLocal
- JDK Dynamic Proxy와 CGLIB의 차이
- redis 대기열 구현
- microkernel architecture
- pipeline architecture
- spring boot redisson 분산락 구현
- 서비스 기반 아키텍처
- service based architecture
- 트랜잭셔널 아웃박스 패턴 스프링부트
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- java userThread와 DaemonThread
- 람다 표현식
- transactional outbox pattern spring boot
- redis sorted set
- 레이어드 아키텍처란
- spring boot poi excel download
- 자바 백엔드 개발자 추천 도서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함