실행과정 질문입니다.
첫째와 둘째에서
프로그램 실행은 .java 파일이 컴파일러에 의해 .class로 변환 된 후에 되어야 하는게 아닌가요?
첫째에서 프로그램이 실행되면~~
둘째에서 컴파일러 변환~~
이라고 나와서 컴파일보다 프로그램 실행이 먼저라는 느낌이 드네요.
답변 1
1
안녕하세요, Cola님!
좋은 질문이에요.
말씀하신 대로 시간 순서로 보면 컴파일이 먼저 일어나는 게 맞습니다. .java가 .class로 변환되어 있어야 JVM이 그걸 로딩해서 실행할 수 있으니까요. IntelliJ에서 Run 버튼을 누르면 IDE가 빌드 단계에서 컴파일을 먼저 처리하고, 그 다음에 JVM이 뜨는 흐름입니다.
자료의 첫째~다섯째는 시간순을 엄격하게 따라가는 나열이라기보다는, Java 실행을 구성하는 단계들을 묶어 정리한 구조로 봐주시면 됩니다.
첫째의 "프로그램이 실행되면"은 JVM이 기동되는 시점을 가리키고, 둘째 컴파일 부분은 JVM이 로딩할 .class가 어떻게 준비되는지를 같이 짚어주는 흐름이라고 보시면 됩니다.
시간 순으로 정리하면 이렇습니다.
.java→.class컴파일java명령으로 JVM 시작, OS로부터 메모리 할당클래스 로더가
.class로딩실행 엔진이 바이트코드 실행
실행 중 GC가 메모리 관리
꼼꼼히 봐주셔서 감사합니다!! 😊
build 시 에러 해결방법 공유(docker.desktop 업데이트 -> 의존성 버전 수정)
0
12
1
예외처리 3강 문의
0
17
1
챌린지 시작일 문의
0
23
0
26년2회 실기기출은 언제쯤...
0
34
2
진짜화면이랑달라서못해먹겟어요먹겟어요
0
49
1
네이버 API | '검색 - 책' API 제공 중단
0
33
2
ArticleReadService 관련 질문
0
26
1
kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.
1
61
1
이론 공부법 요약본 버전 업데이트 문의
0
34
2
domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다
1
44
1
해당 프로젝트를 똑같이 따라하려니 spring installer가 버전이 17부터 가능하네요.
0
23
1
Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.
0
44
2
테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.
0
29
1
[영한님]Spring Boot 및 프로젝트 생성
0
52
2
Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면
1
72
1
리뉴얼 시기
0
44
2
질문있습니다.
1
89
2
멀티스레드
1
84
2
성능 오버헤드
1
83
2
volatile에 대해 질문 있습니다.
2
115
2
Mark and Sweep
1
85
1
GC 알고리즘
1
87
2
용어 질문
1
58
1
호출횟수 질문입니다.
1
92
2





