자바를 컴퓨터가 알아듣기까지
컴파일
- 인간이 이해하기 쉬운 언어를 기계어로 번역하는 과정
- 자바 코드를 바이트 코드(=바이너리 코드) 변환해서 컴퓨터가 이해할 수 있도록 변환
- System.out.println(“HelloWorld”) -> 01010100110100-> 컴퓨터가 이해
컴파일러
- 컴파일 하는 프로그램
바이트 코드
- 0과 1로 이루어진 코드, 컴퓨터가 이해할 수 있다.
0과 1의 조합은 OS마다 다르다. (윈도우, 맥, 리눅스)
- 운영체제마다 “Hello World”가 실행 안될 수도 있다.
- 그래서 C언어 같은 경우 각각 다른 컴파일러가 필요하다.
JVM
- 자바 컴파일러가 하나 있고 각 OS로 바로 가는 것이 아니라 JVM을 거쳐서 간다. (각 OS와 호환시켜 주는 아이)
- 자바 가상 머신의 약자 (Java Virtual Machine)
- 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환
- 바이트 코드를 실행하는 표준(JVM 자체는 표준)이자 구현체(특정 밴더가 구현한)이다.
- JVM 밴더 : 오라클, 아마존, Azul...
- 특정 플랫폼에 종속적
JDK > JRE > JVM
JRE
- 자바 실행 환경의 약자 (Java Runtime Environment)
- JRE = JVM + 자바 프로그램 실행에 필요한 라이브러리 파일 등
- System.out.println, Scanner 이런 것들이 들어 있음
- JVM 실행환경을 구현
JDK
- 자바 개발 도구의 약자 (Java Development Kit)
- JDK = JRE + 개발을 위한 도구
- 컴파일러, 디버그 도구 등이 포함
- 여기서 컴파일을 하고 JVM이 각 OS로 해석
- 원래 JRE와 JDK를 따로 제공했었으나 자바 11부터 JDK만 제공
따라서 JAVA의 버전 = JDK의 버전
LTS(Long Time Support)
- 오래 써도 되는 버전, 장기간 지원하는 버전
- JDK8, JDK11, JDK11...
JDK에는 종류도 있다.
- ORACLE JDK: 오라클에서 만들었으며 JDK11부터 상용으로 사용할 때 유료이다.
- Open JDK: 오라클 JDK와 비슷한 성능 언제나 무료
'JAVA' 카테고리의 다른 글
옵저버 패턴(Observer Pattern) 살펴보기 (0) | 2022.03.05 |
---|---|
[AssertJ] Iterable and array assertions 활용 (컬렉션 테스트) (0) | 2022.03.03 |
[자바] 객체 내부 컬렉션 데이터 보호하기 (0) | 2022.02.26 |
자바 스트림 사용 정리 (0) | 2022.02.20 |
자바 코드로 살펴보는 원시 값 포장에 대해 (0) | 2022.02.17 |