큐범
Just do debug
큐범
전체 방문자
오늘
어제
  • 전체보기 (128)
    • 회고 (4)
    • JAVA (16)
      • JAVA 기초 (18)
      • JAVA Algorithm, Datastruct (13)
    • Spring (11)
    • Micro Service Architecture (3)
    • JPA (6)
    • gRPC (4)
    • Network (8)
    • Process (7)
    • Cloud (4)
    • Python (10)
    • Web(vue) (2)
    • UMC (1)
    • DB (9)
    • CS (1)
    • Clean Code (1)
    • TDD (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
큐범

Just do debug

JAVA

[Java] 릴리즈 버전별 특징

2024. 7. 30. 15:54

Java 8 LTS (2014.03)

지원 기간 : 2030.12

  • 람다 표현식 (Lambda Expressions)
  • 스트림 API (Streams API)
  • 새로운 날짜와 시간 API (java.time)
    • Ex) LocalDateTime
  • 인터페이스의 디폴트 메서드 (Default Methods)
  • 메타공간 (Metaspace) 메모리 관리
    • Permanent Heap 영역이 제거 - Perm은 JVM에 의해 크기가 강제되던 영역
    • Metaspace영역은 OS레벨에서 관리하는 영역이 되기에 Metaspace가 Native메모리를 이용함으로서 개발자는 영역 확보의 상한에 대한 오버헤드가 감소한다.

Java 9 (2017.09)

  • 모듈 시스템 (Project Jigsaw)
    • Jigsaw는 모듈을 만들고 모듈에 명시적으로 외부에서 호출할 수 있는 API를 선언한다. 언어 레벨에서 API 작성자가 외부에 노출한 API 외에는 접근할 수 없도록 설계 되어 있고 사용할 다른 모듈을 사용하는 경우는 선언적으로 사용한다.
  • JShell (REPL)
  • HTTP/2 클라이언트 API

Java 10 (2018.03)

  • 지역 변수 타입 추론 (var)
  • 가비지 컬렉터 개선
  • 병렬 풀 GC

Java 11 LTS (2018.09)

지원 기간 2026.09

  • 새로운 String 메서드(lines, strip, repeat 등)
  • HTTP 클라이언트 API 표준화 (HttpClient)
  • Lambda 파라미터의 지역변수 문법
  • JavaFX 분리

Java 12 (2019.03)

  • Switch Expressions (프리뷰)
  • G1 가비지 컬렉터 개선
  • JVM Constants API

Java 13 (2019.09)

  • Switch Expressions (프리뷰 개선)
  • 텍스트 블록 (Text Blocks) (프리뷰)

Java 14 (2020.03)

  • Switch Expressions 표준화
  • 텍스트 블록 (Text Blocks) (프리뷰 개선)
  • 레코드 (Records) (프리뷰)
  • 패턴 매칭 (Pattern Matching) for instanceof (프리뷰)

Java 15 (2020.09)

  • 텍스트 블록 (Text Blocks) 표준화
  • 숨겨진 클래스 (Hidden Classes)
  • ZGC 개선
  • Records (프리뷰 개선)
  • 패턴 매칭 for instanceof (프리뷰 개선)

Java 16 (2021.03)

  • 레코드 (Records) 표준화
  • 패턴 매칭 for instanceof 표준화
  • Vector API (Incubator)

Java 17 LTS (2021.09)

지원 기간 2029.09

  • 장기 지원 (LTS) 버전.
  • 패턴 매칭 for switch (프리뷰).
  • String result = switch (obj) { case Integer i -> "Integer: " + i; case Long l -> "Long: " + l; case Double d -> "Double: " + d; case String s -> "String: " + s; default -> "Unknown type"; };
  • Sealed Classes.
  • // Animal.java public sealed class Animal permits Dog, Cat { // Animal class implementation } // Dog.java public final class Dog extends Animal { // Dog class implementation } // Cat.java public final class Cat extends Animal { // Cat class implementation }
  • Foreign Function & Memory API (Incubator).
  • System.loadLibrary("example"); // Load the native library
  • 난수 생성 API 추가
  • // 기본 랜덤 생성기 사용 RandomGenerator random = RandomGenerator.of("Random"); System.out.println("Random: " + random.nextInt()); // L64X128MixRandom 생성기 사용 RandomGenerator l64x128MixRandom = RandomGenerator.of("L64X128MixRandom"); System.out.println("L64X128MixRandom: " + l64x128MixRandom.nextInt()); // Xoshiro256PlusPlus 생성기 사용 RandomGenerator xoshiro256PlusPlus = RandomGenerator.of("Xoshiro256PlusPlus"); System.out.println("Xoshiro256PlusPlus: " + xoshiro256PlusPlus.nextInt());

Java 18 (2022.03)

  • UTF-8 기본 인코딩
  • Simple Web Server
  • Code Snippets in Java API Documentation

Java 19 (2022.09)

  • Project Loom (Virtual Threads) (프리뷰)
  • Foreign Function & Memory API 개선
  • Vector API 개선

Java 20 (2023.03)

  • Scoped Values (Incubator)
  • Improved Pattern Matching
  • Further Virtual Threads improvements

Java 21 (2023.09)

  • Project Panama (Foreign Function & Memory API)
  • Enhanced Pattern Matching for switch (표준화)
  • Improved Virtual Threads (Hit)
  • Structured Concurrency (Incubator)
    'JAVA' 카테고리의 다른 글
    • [JAVA] GC(Garbage Collector) 동작과정, 종류, Java Default GC, Java Command
    • [JAVA] Exception 처리에 대한 고찰 - 코드 구성
    • 좋은 객체지향 설계의 5가지 원칙(SOLID)
    • [JAVA] 다형성(polymorphism)
    큐범
    큐범

    티스토리툴바