Language/Java

[Java] JVM GC의 종류와 특징

MOMOBOB 2024. 4. 30. 06:41
반응형
  1. JVM 1.0 – 1.1 :
    • 기본 기능을 갖춘 JVM의 초기 버전입니다.
    • 성능 향상을 위해 JIT(Just-In-Time) 컴파일을 도입했습니다.
    • 동적 언어에 대한 지원이 제한적이고 최신 최적화가 부족했습니다.
  2. JVM 1.2 – 1.3 :
    • 향상된 가비지 수집(GC) 알고리즘.
    • Java 보안 모델이 추가되어 보안 기능이 강화되었습니다.
    • JNDI(Java 명명 및 디렉토리 인터페이스) 도입.
  3. JVM 1.4 :
    • 비차단 I/O 작업을 위한 java.nio 패키지가 추가되었습니다.
    • JMX(Java Management Extensions)를 통해 모니터링 및 관리가 향상되었습니다.
    • 코드 테스트를 위한 어설션 기능 도입.
  4. JVM 5(자바 SE 5.0) :
    • 주요 기능에는 제네릭, 메타데이터 주석 및 향상된 for 루프가 포함됩니다.
    • 적응형 최적화 및 가비지 수집 개선을 통해 더 나은 성능을 제공하는 JVM HotSpot이 도입되었습니다.
    • 모니터링 및 진단을 위한 JMC(Java Management Console)가 추가되었습니다.
  5. JVM 6(자바 SE 6) :
    • 성능 및 메모리 관리가 향상되었습니다.
    • Java 컴파일러 API(JSR 199) 및 스크립팅 API(JSR 223)가 포함된 스크립팅 지원이 도입되었습니다.
    • 모니터링 및 문제 해결을 위한 VisualVM 통합.
  6. JVM 7(자바 SE 7) :
    • 병렬 프로그래밍을 위한 Fork/Join 프레임워크 소개.
    • 더 나은 리소스 관리를 위해 try-with-resources 문이 향상되었습니다.
    • 동적 언어 지원을 위한 Invokedynamic 바이트코드 명령이 추가되었습니다.
  7. JVM 8(자바 SE 8) :
    • 함수형 프로그래밍을 위한 람다 표현식 및 Streams API 소개.
    • 인터페이스의 기본 메소드.
    • 날짜 및 시간 조작을 위한 java.time 패키지 도입.
  8. JVM 9(자바 SE 9) :
    • Project Jigsaw를 통해 모듈 시스템이 도입되었습니다.
    • JPMS(Java 플랫폼 모듈 시스템) 도입.
    • 대화형 Java 프로그래밍을 위해 JShell이 ​​개선되었습니다.
  9. JVM 10 – 11 :
    • 지역 변수 유형 추론이 도입되었습니다.
    • 실험적 기능으로 Graal JIT 컴파일러를 도입했습니다.
    • 가비지 수집 및 메모리 관리가 지속적으로 개선됩니다.
  10. JVM 12 – 17 :
    • 성능, 가비지 수집 및 보안 기능이 점진적으로 개선되었습니다.
    • JVM 14 및 16에 각각 레코드 및 패턴 일치가 도입되었습니다.
    • 클래스 상속에 대한 더 나은 제어를 위해 JVM 15에 봉인된 클래스 및 인터페이스가 도입되었습니다.

각 JVM 버전은 성능, 보안, 언어 기능 및 도구를 향상시켜 Java 개발자 및 애플리케이션의 진화하는 요구 사항을 충족합니다.

반응형