ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] JAVA 14 주요 변경점
    JAVA 2024. 9. 19. 22:05
    반응형

    Java 14의 주요 변경사항 총정리

    Java 14는 2020년 3월에 출시된 단기 지원 버전으로, 다양한 새로운 기능과 개선사항을 도입했습니다. 이번 포스트에서는 Java 14의 주요 변경사항들을 자세히 살펴보겠습니다.

    1. Switch 표현식 (표준화)

    이전 버전에서 preview로 도입된 switch 표현식이 이제 표준 기능으로 채택되었습니다.

    주요 특징:

    • 화살표(->)를 사용한 간결한 case 라벨 구문
    • 'yield' 키워드를 사용하여 switch 표현식에서 값 반환 가능

    예시 코드:

    int numLetters = switch (day) {
        case MONDAY, FRIDAY, SUNDAY -> 6;
        case TUESDAY -> 7;
        case THURSDAY, SATURDAY -> 8;
        default -> {
            String s = day.toString();
            yield s.length();
        }
    };

    2. Records (Preview)

    단순 데이터 객체를 위한 새로운 클래스 유형인 Record가 preview로 도입되었습니다.

    주요 특징:

    • 간결한 구문으로 불변 데이터 객체 선언 가능
    • 생성자, 접근자 메서드, equals(), hashCode(), toString() 메서드 자동 생성

    예시 코드:

    record Point(int x, int y) { }

    3. Pattern Matching for instanceof (Preview)

    instanceof 연산자에 대한 패턴 매칭이 preview로 도입되었습니다.

    주요 특징:

    • 타입 검사와 캐스팅을 한 번에 수행 가능

    예시 코드:

    if (obj instanceof String s) {
        System.out.println(s.length());
    }

    4. 텍스트 블록 (Second Preview)

    여러 줄 문자열 리터럴을 위한 텍스트 블록 기능이 두 번째 preview로 제공됩니다.

    주요 특징:

    • 가독성 향상
    • 새로운 이스케이프 시퀀스 추가: <line-terminator>와 \s

    예시 코드:

    String html = """
                  <html>
                      <body>
                          <p>Hello, World!</p>
                      </body>
                  </html>
                  """;

    5. Helpful NullPointerExceptions

    NullPointerException 메시지가 더 상세해져 어떤 변수가 null인지 정확히 파악할 수 있게 되었습니다.

    6. 패키징 도구 (Incubator)

    자체 포함된 Java 애플리케이션을 패키징하기 위한 새로운 jpackage 도구가 incubator 모듈로 도입되었습니다.

    7. NUMA-Aware Memory Allocation for G1

    대규모 시스템에서 G1 가비지 컬렉터의 성능을 개선했습니다.

    8. JFR Event Streaming

    JFR(Java Flight Recorder) 데이터의 연속적인 소비가 가능해졌습니다.

    9. Non-Volatile Mapped Byte Buffers

    비휘발성 메모리를 위한 새로운 JDK 특정 파일 매핑 모드가 추가되었습니다.

    10. ZGC on macOS and Windows (Experimental)

    ZGC(Z Garbage Collector)가 macOS와 Windows에서도 실험적으로 사용 가능해졌습니다.

    11. Foreign-Memory Access API (Incubator)

    Java 힙 외부의 외부 메모리에 안전하고 효율적으로 접근할 수 있는 API가 incubator 모듈로 도입되었습니다.

    기타 변경사항

    • Solaris 및 SPARC 포트 지원 중단
    • Concurrent Mark Sweep (CMS) 가비지 컬렉터 제거

    결론

    Java 14는 단기 지원 버전임에도 불구하고 다양한 혁신적인 기능과 성능 개선을 도입했습니다. 특히 Switch 표현식의 표준화와 Records, Pattern Matching for instanceof의 preview 도입은 Java 언어의 표현력과 생산성을 크게 향상시켰습니다.

    이러한 변경사항들은 Java 개발자들에게 더 나은 도구와 기능을 제공하여 개발 경험을 개선하고 있습니다. Java 14의 새로운 기능들을 실험해보고, 여러분의 프로젝트에 적용해 보시기 바랍니다!

    Java의 지속적인 발전은 개발자 커뮤니티와 기업들에게 큰 혜택을 제공하고 있으며, 앞으로의 버전에서도 더 많은 혁신적인 기능들이 도입될 것으로 기대됩니다. 특히 preview 기능들이 어떻게 발전하고 정식 기능으로 채택될지 주목해볼 만합니다.

    반응형

    'JAVA' 카테고리의 다른 글

    [JAVA] JAVA 16 주요 변경점  (0) 2024.09.21
    [JAVA] JAVA 15 주요 변경점  (0) 2024.09.20
    [JAVA] JAVA 13 주요 변경점  (0) 2024.09.18
    [JAVA] JAVA 12 주요 변경점  (1) 2024.09.17
    [JAVA] JAVA 11 주요 변경점  (1) 2024.09.16
Designed by Tistory.