2023년 6월 1일 기준으로 오라클 공식 홈페이지(https://www.oracle.com/kr/) 내에서 리소스 탭의 Java다운로드 를 클릭하면 확인이 가능하다.
자바를 다운할 경우, JRE와 JVM,JDK라는 단어가 많이 보여진다.
Java 종류의 차이점을 알기 전, JRE와 JVM,JDK에 대하여 짚고 넘어가보자.
1. 고급언어
인간이 이해할 수 있는 언어. 즉, 일반 Java에서 사용하는 코드
public static void main(String[] args){ System.out.println("Hello World!"); }
2. 기계어
binary 코드. 즉, 이진수(0과 1) 로만 이루어진 코드
0101010001010 1010100010010 0101010000001
3. Compile(컴파일)
고급 언어를 기계어로 해석하는 일련의 과정
4. Compiler(컴파일러)
고급 언어를 기계어로 해석해주는 프로그램
컴퓨터는 고급언어를 해석하지 못한다.
컴퓨터의 입장에서 보면 고급 언어를 본인이 이해할 수 있는 기계어로 번역을 해야지만 해석이 가능해지는데
이 때, Compiler(컴파일러) 가 Compile(컴파일) 을 해주는 과정을 거치게 된다.
0과 1로만 이루어진 기계어의 조합은 C언어에서는 OS(운영체제)별로 해석이 다르게 이루어졌다.
Example
0101010001010 1010100010010 0101010000001...
C언어에서 해당 이진수 코드는 OS별로 출력이 상이하다.
- Windows : "Hello World!"
- Mac : 출력 불가
- Linux : 출력 불가
하지만 JAVA의 등장으로 OS별로 다양히 적용되었던 컴파일러가 자바 컴파일러 하나로 통합되어, 동일한 출력물을 제공하게 되었다
Example
0101010001010 1010100010010 0101010000001...
- Windows : "Hello World!"
- Mac : "Hello World!"
- Linux : "Hello World!"
C언어의 경우 각 운영체제에 맞는 전용 Compiler를 사용하여 번역해준다.
Windows
C언어 -> Compiler -> 010101.. -> OS(Windows)
Mac
C언어 -> Compiler -> 010101.. -> OS(Mac)
Linux
C언어 -> Compiler -> 010101.. -> OS(Linux)
사용중인 운영체제에 맞는 JAVA를 다운로드 하게 되는데, 이 때 운영체제에 맞는 JVM이 자동으로 설치가 되어진다.
JAVA
JAVA -> Java Compiler -> 010101.. -> OS별 JVM -> OS(Windows, Mac, Linux)
정의 : 자바개발도구
구성 : JRE + 개발을 위한 도구(컴파일러, 디버그)
정의 : 자바실행환경
구성 : JVM + Java 라이브러리 파일들
정의 : 자바가상머신
구성 : OS별로 존재함
자바는 새로운 버전이 나올수록 있던 기능이 없어지기도, 없던 기능이 추가되기도 한다.
위의 이미지에서 버전을 확인해보면 (LTS)라는 개념이 들어있는데, LTS는 Long Time Support의 약자이다. 이 말은 몇 년 사용해서 중단되는 버전이 아니라, 어느정도 계속해서 지원을 보장한다는 의미가 담겨있다.
[기타] JDK 8 _ Oracle의 Java인수
Java라는 언어는 썬 마이크로시스템즈에서 1995년에 개발한 OOP 언어이다. 2010년에 Oracle이 썬 마이크로시스템즈를 인수하게 되면서 Java의 저작권을 소유하게 되었으며 이 때 나오게 된 버전이 JDK 8버전이다
출처 : 나무위키(Java)