[Java] JDK, JRE, JVM
서론
이 글은 자바를 공부하기 전에 알아두면 좋을 것들!! #1
(링크)를 참조하여 정리한 글임을 밝힙니다.
본론
자바의 특성
유명한 문구죠. "Write Once, Run Anywhere". C언어의 경우, 운영체제마다 각각 다른 컴파일러가 존재합니다. 같은 바이트 코드임에도, 운영체제에 따라 다르게 해석됩니다. 그러나 자바는 하나의 컴파일러만 존재하고 각 운영체제에 맞게 바이트 코드를 변환해주는 JVM이 존재합니다. 따라서 어떤 운영체제든, 같은 컴파일러를 사용할 수 있고 이로인해 운영체제와 상관 없이 일정하게 코드를 호환할 수 있습니다.
컴파일 되기까지
자바 언어를 컴퓨터가 이해하려면 0과 1로 구성된 바이너리로 변환되어야 합니다. 이를 컴파일이라고 합니다. 운영체제마다 컴파일러가 다른데, 앞서 말했듯 Java에선 각각의 운영체제에 맞게 호환되도록 돕는 JVM이 각 운영체제마다 존재합니다. 따라서 등장 따라서 컴파일된 결과물이 운영체제와 독립적으로 나타나게 된다. JVM은 코틀린에서도 사용된다.
JDK
JRE와 개발을 위한 도구. 컴파일러와 디버그 도구 등이 포함됩니다. 저희가 설치하는 자바 버젼이 곧 JDK의 버젼이 됩니다. JDK에는 다양한 종류가 있는데, 크게 Oracle JDK와 Open JDK가 있습니다.
JRE(Java Runtime Environment)
자바 실행 환경의 약자로, JVM과 자바 프로그램 실행에 필요한 라이브러리 파일들을 포함한다. JVM의 실행환경을 구현한다. 매번 사용하는 System.out.println()을 아무런 import 없이 사용할 수 있는 이유이기도 합니다.
JVM(Java Virtual Machine)
자바 가성 머신의 약자로, OS 별로 따로 존재합니다. JVM은 바이너리 코드를 읽고 검증하고 실행합니다.
마무리
이상으로 짧게 자바와 관련된 배경지식들을 정리해봤습니다. 새롭게 알게 된 지식들은 새롭게 정리하도록 하겠습니다. 읽어주셔서 감사합니다!