[자바의 신] 19장 이쯤에서 자바의 역사와 JVM에 대해서 알아보자

한지연·2023년 4월 3일
0

📘 JDK (Java Development Kit)

  • 자바 플랫폼에서 운영되는 소프트웨어 개발에 필요한 것들로 구성된 패키지
  • 어떤 OS에서 개발하든 버전만 맞으면 컴파일 후 애플리케이션 실행에 문제가 없음

종류

  • Java SE: 표준 에디션, 자바 언어의 핵심 기능 제공
  • Java EE: 엔터프라이즈 에디션, 기업용 시스템 개발에 사용
  • Java ME: 센서, tv셋탑박스와 같은 임베디드 기기들을 위해 제공
  • Java FX: 사용자 인터페이스 제공

Java SE와 Java EE 차이점

출처: https://www.ibm.com/docs/ko/odm/8.9.1?topic=application-java-se-java-ee-applications

📘 JDK와 JRE

JRE

  • Java Runtime Environment
  • 실행만을 위한 환경, 자바를 실행할 수 있는 환경의 집합

📌 JDK는 JRE를 포함하고 있다

📘 JIT(Just In Time) 컴파일러

정의

  • 인터프리트 방식과 정적 컴파일 방식을 혼합하여 사용하는 것
    인터프리트: 실행할 때마다 컴퓨터가 알아들을 수 있는 언어로 변환, 성능 느림
    정적 컴파일: 실행하기 전에 컴퓨터가 알아 들을 수 있는 언어로 변환하는 작업을 미리 실행, 변환 작업 딱 한 번 수행

특징

  • 반복적으로 수행되는 코드는 매우 빠른 성능을 보임
  • 하지만 처음 시작할 때는 변환 단계를 거쳐야 하므로 성능이 느림
    (CPU 성능과 JDK 성능이 개선되어 단점이 많이 보완됨)

📚 HotSpot(JVM)

정의

자바 가상 머신, 작성한 자바 프로그램이 수행되는 프로세스

종류

  • HotSpot 클라이언트 컴파일러
    : 애플리케이션 시작 시간을 빠르게하고 적은 메모리를 점유하도록 함
  • HotSpot 서버 클라이언트
    : 코어가 많은 장비에서 애플리케이션을 돌리기 위해 만들어짐
    : 애플리케이션 수행 속도에 초점을 맞춤

GC(Garbage Collector)

  • JVM 내에서 메모리 관리
  • 사용 후 남아 있는 필요없어진 객체들을 회수함

메모리 주기

  • Eden 영역 객체 생성 ‣ Eden 영역 꽉 참 ‣ 살아있는 객체만 S0 영역 복사 ‣ S0 영역 꽉 참 ‣ S1 영역으로 이동(이때 Eden 영역에 살아 있는 객체도 함께 이동)
  • S0과 S1 둘 중 하나는 비어 있어야 함

📝 jdk, jre, jvm 쉽게 이해하기

출처: https://www.youtube.com/watch?v=f0cAmTYo4tQ

profile
배우고 활용하는 것을 즐기는 개발자, 한지연입니다!

0개의 댓글