컴파일러(compiler)
자바를 비롯한 고급 언어는 사람이 이해할 수 있는 문장으로 구성되어 있고 컴퓨터는 이 언어를 바로 이해하지 못한다. 고로 컴퓨터가 이해할 수 있는 언어로 변환하는 과정이 필요하며 이 과정을 수행하는 것이 컴파일러다.
모든 컴퓨터는 똑같은 기계어를 사용하지 않는다. 자신의 플랫폼에 따라 서로 다른 언어를 사용한다.
- ex) 윈도우 컴퓨터와 맥 컴퓨터는 서로 다른 기계어를 사용한다.
- 동일한 고급 언어로 작성된 프로그램이라 하더라도 다른 플랫폼상에서 동작하도록 하기 위해서는 다른 컴파일러를 사용해야한다.
자바의 특징
- 플랫폼 독립성
- 객체지향 언어
- 함수형 코딩 지원
- 분산 처리 지원
- 멀티 쓰레드 지원
- 등...
플랫폼 종속성 vs 플랫폼 독립성
플랫폼 종속성 : 하나의 실행 파일은 하나의 특정 플랫폼에서만 실행할 수 있음
플랫폼 독립성 : 하나의 프로그램이 모든 플랫폼에서 실행 가능
자바가 플랫폼 독립성을 지닐 수 있는 이유는 자바 가상 머신(JVM: Java Virtual Machine) 덕분이다.
다양한 플랫폼 위에 자바 가상 머신 도구를 설치하고 .class 파일을 실행하게 해 주는 가상 컴퓨터를 올려 놓는다.
물론, 윈도우용, 맥용, 리눅스용 자바 가상 머신을 각각 만들어야 한다.
자바 개발 도구(JDK: Java Development Kit)
자바를 이용해 프로그램을 개발하는 데 필요한 도구를 모아 둔 집합.
자바 실행 환경(JRE: Java Runtime Environment)
완성된 프로그램을 실행하는 데 필요한 환경
참고
Do it 자바 완전 정복
'Backend > JAVA' 카테고리의 다른 글
[Java] #5.2 참조자료형 - 문자열 (0) | 2023.05.21 |
---|---|
[Java] #5.1 참조 자료형 - 배열 (0) | 2023.05.16 |
[Java] #4 제어문과 제어 키워드 (1) | 2023.05.15 |
[JAVA] #3 연산자 (0) | 2023.05.10 |
[JAVA] 변수와 자료형 (0) | 2023.04.29 |