2024.02.16
자바의 특징
- 객체지향 언어
- 플랫폼 독립적
- 멀티스레드
- 네트워크와 분산처리 지원
- 가비지 컬렉터
플랫폼의 구성
- program.java
- 자바 api
- 자바 가상 머신(JVM)
- 하드웨어 기반 플랫폼(os)
JVM (Java Vertual Machine)
- 자바 바이트코드를 실행하는 주체
- 운영체제와 자바프로그램을 연결시켜주는 역할
- 플랫폼에 독립적으로 동작
- JRE에 포함되어 배포됨
- 가비지 컬렉션을 수행
- 인터프리터나 JIT 컴파일 방식으로 바이트코드를 실행할 수 있도록 함 (과거 순수 인터프리터 방식으로 실행시간이 늦은 편이었으나 JIT(Just-In-Time) 컴파일을 구현하여 성능을 개선)
컴파일러 - 고급 언어로 쓰여진 프로그램이 컴퓨터가 이해할 수 있는 저급 언어로 번역 번역과정이 번거롭고 번역 시간이 오래 걸림 한번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠름
인터프리터 - 프로그램을 한 단계 씩 기계어로 해석하여 실행하며, 실행 시간이 길어 속도가 늦음 프로그램이 직접 실행되므로 목적 프로그램이 생성되지 않음
JIT 컴파일 - 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법. 실행 시점에 기계어 코드를 생성하면서 해당 코드를 캐싱 함수가 여러 번 호출될 때 마다 매번 기계어 코드가 생성되는 걸 방지. 인터프리터의 실행 속도가 느린 단점을 보완
java SE (Java Standard Edition): 데스크탑 애플리케이션 개발환경
java EE (Java Enterprise Edition): 엔터프라이즈 기반 애플리케이션 개발환경
java ME (Java Micro Edition): 모바일 및 임베디드 기반 애플리케이션 개발환경
JRE(Java Runtime Environment): 자바 프로그램을 실행하기 위한 환경 라이브러리, JVM(자바 가상 기계), 기타 컴포넌트들을 제공. 자바 프로그램을 단순히 실행만 하고 개발을 하지 않는 일반 사용자용
JDK(Java Development Kit): 자바 프로그램을 개발하기 위한 컴파일러, 디버거와 같은 명령어 행 개발도구를 추가한 것 JRE를 포함
자바의 실행 구조
- Hello.java 파일을 컴파일 한다.
- 컴파일 단계에서 문법에 맞게 작성되어 있는지 검사해서 오류가 없으면 컴파일을 수행하여 바이트 코드로 변환한다.
- 바이트 코드로 변환된 Hello.class 파일을 인터프리터가 작동한다.
- 인터프리터 단계에서 작성된 코드를 실행시켜 콘솔에 표시해준다.
'IT 국비 교육' 카테고리의 다른 글
쌍용교육센터 - 7일 (0) | 2024.02.26 |
---|---|
쌍용교육센터 - 6일 (0) | 2024.02.23 |
쌍용교육센터 - 4일~5일 (0) | 2024.02.21 |
쌍용교육센터 - 3일 (0) | 2024.02.20 |
쌍용교육센터 - 2일 (0) | 2024.02.19 |