티스토리 뷰

이전 글 - Java의 특징


이전 글에서 컴파일러가 Java를 기계어로 번역해준다고 설명했지만,

정확히 말하면 기계어가 아닌, 바이트코드로 변환해 주는 것입니다.


바이트코드 설명 링크


우리가 Java에서 소스코드를 작성한 파일은 ~~.java 의 확장자로 저장이 됩니다.

그리고 컴파일러는 이것을 ~~.class형태로 변환해주는데, 이것이 바이트코드입니다.


우리의 운영체제는 ~~.class파일을 당연히 이해 할 수 없기 때문에, 여기에서 필요한 것이 JVM(Java Virtual Machine)입니다.


JVM은 운영체제를 대신해서 ~~.class 파일을 기계어로 번역한 뒤, 이것을 실행 시키게 됩니다.


왜 이런 과정이 필요할까요?


그 이유는 각 운영체제 마다 사용하는 기계어가 조금씩 다르기 때문입니다.

그래서 JVM은 운영체제 마다 다른 버전의 JVM이 필요합니다. 

MAC에는 MAC용 JVM, 윈도우는 윈도우용 JVM...





위와 같은 방식으로 우리가 작성한 Java 소스코드는 우리의 컴퓨터에서 실행되게 됩니다.


정리


컴파일러는 한번에 기계어로 변환시켜주는게 아니라, 바이트코드 파일로 변환 시킴

바이트코드는 JVM에 의해 각 운영체제에 맞는 기계어로 번역되어 컴퓨터에서 실행됨



댓글