티스토리 뷰
이전 글에서 컴파일러가 Java를 기계어로 번역해준다고 설명했지만,
정확히 말하면 기계어가 아닌, 바이트코드로 변환해 주는 것입니다.
우리가 Java에서 소스코드를 작성한 파일은 ~~.java 의 확장자로 저장이 됩니다.
그리고 컴파일러는 이것을 ~~.class형태로 변환해주는데, 이것이 바이트코드입니다.
우리의 운영체제는 ~~.class파일을 당연히 이해 할 수 없기 때문에, 여기에서 필요한 것이 JVM(Java Virtual Machine)입니다.
JVM은 운영체제를 대신해서 ~~.class 파일을 기계어로 번역한 뒤, 이것을 실행 시키게 됩니다.
왜 이런 과정이 필요할까요?
그 이유는 각 운영체제 마다 사용하는 기계어가 조금씩 다르기 때문입니다.
그래서 JVM은 운영체제 마다 다른 버전의 JVM이 필요합니다.
MAC에는 MAC용 JVM, 윈도우는 윈도우용 JVM...
위와 같은 방식으로 우리가 작성한 Java 소스코드는 우리의 컴퓨터에서 실행되게 됩니다.
정리
컴파일러는 한번에 기계어로 변환시켜주는게 아니라, 바이트코드 파일로 변환 시킴
바이트코드는 JVM에 의해 각 운영체제에 맞는 기계어로 번역되어 컴퓨터에서 실행됨
'Java' 카테고리의 다른 글
[Android/Kotiln] 태블릿판별, 태블릿 아닐 때만 세로 모드 고정 (0) | 2021.01.27 |
---|---|
[백준] 유기농 배추 - 1012 (java) (0) | 2019.09.01 |
트리순회 / 숫자 (0) | 2018.09.27 |
Static 변수 (0) | 2018.02.05 |
데이터 타입 분류 (0) | 2018.01.31 |
변수와 타입 - 원시 타입(primitive type)에서 알아두면 좋을 것들 (0) | 2018.01.28 |
Java란? -2 자바의 특징 (0) | 2018.01.24 |
Java란? -1 프로그래밍 언어 (4) | 2018.01.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java #오르막수 #백준 #알고리즘
- javascript #연속합 #알고리즘 #백준
- 백준 #java #알고리즘
- 1992번
- 중간거리 #야만나 #약속장소추천 #중간위치 #웹 #리액트 #React #reactjs #kakao지도 #kakaoapi
- react
- java #알고리즘 #백준
- TypeScript
- javascript #백준 #알고리즘 #LCS
- java #알고리즘 #백준 #N과M #백트래킹
- 백준
- 알고리즘
- java #알고리즘 #백준 #패션왕신해빈
- Game
- java #하노이 #알고리즘 #백준
- Javascript
- 한글 자동 완성
- javascript #백준 #회의실배정 #알고리즘
- 백준 #알고리즘 #전깃줄 #NodeJs #javascript
- 색종이자르기
- webspider
- webpack
- java #퀵소트 #quicksort #알고리즘 #백준
- java #알고리즘 #백준 #퇴사
- 2630번
- java #백준 #알고리즘 #로또 #6603
- npm
- Terminal
- 쿼드트리
- java #백준 #알고리즘 #2805 #나무자르기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함