쌍용교육센터 - 1일

개발자가 되고 싶어요 ㅣ 2024. 2. 16. 16:41

2024.02.16

자바의 특징

  1. 객체지향 언어
  2. 플랫폼 독립적
  3. 멀티스레드
  4. 네트워크와 분산처리 지원
  5. 가비지 컬렉터

플랫폼의 구성

  • program.java
  • 자바 api
  • 자바 가상 머신(JVM)
  • 하드웨어 기반 플랫폼(os)

JVM (Java Vertual Machine)

  1. 자바 바이트코드를 실행하는 주체
  2. 운영체제와 자바프로그램을 연결시켜주는 역할
  3. 플랫폼에 독립적으로 동작
  4. JRE에 포함되어 배포됨
  5. 가비지 컬렉션을 수행
  6. 인터프리터나 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를 포함

자바의 실행 구조

  1. Hello.java 파일을 컴파일 한다.
  2. 컴파일 단계에서 문법에 맞게 작성되어 있는지 검사해서 오류가 없으면 컴파일을 수행하여 바이트 코드로 변환한다.
  3. 바이트 코드로 변환된 Hello.class 파일을 인터프리터가 작동한다.
  4. 인터프리터 단계에서 작성된 코드를 실행시켜 콘솔에 표시해준다.

'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