SIMPOLOR
단순하고 색있게
Java 14 주요 특징 및 개선 사항: Pattern Matching, Records, Switch Expressions 등
단순색
·
2024년 06월 10일
Java
자바 14(Java SE 14)은 2020년 3월에 릴리스되었으며, 여러 가지 새로운 기능과 개선 사항을 포함하고 있습니다. ## Pattern Matching for instanceof (Preview) `instanceof` 연산자에 패턴 매칭 기능이 추가되었습니다. 이를 통해 타입 캐스팅을 더 간결하게 작성할 수 있습니다. ``` if (obj instanceof String s) { System.out.println(s.toLowerCase()); } ``` ## Records (Preview) 불변 데이터 객체를 간결하게 표현할 수 있는 레코드 타입이 도입되었습니다. ``` public record Point(int x, int y) {} Point point = new Point(1, 2); System.out.println(point.x()); // 1 System.out.println(point.y()); // 2 ``` ## Switch Expressions (Standard) - 자바 12와 13에서 프리뷰 기능으로 제공되었던 switch 표현식이 이제 표준 기능으로 도입되었습니다. - 더 간결하고 강력한 조건 분기 코드를 작성할 수 있습니다. ``` int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; default -> throw new IllegalStateException("Invalid day: " + day); }; ``` ## Helpful NullPointerExceptions**: NullPointerException 발생 시, 보다 상세한 정보를 제공하여 디버깅을 쉽게 할 수 있습니다. ``` // 예: NullPointerException이 발생하면 // Cannot read field "field" because "object" is null ``` ## Text Blocks (Second Preview) 여러 줄의 문자열을 쉽게 작성할 수 있는 텍스트 블록 기능이 계속해서 개선되었습니다. ``` String textBlock = """ This is a text block. It can span multiple lines. Indentation is preserved. """; ``` ## Foreign-Memory Access API (Incubator) 자바 힙 외부의 메모리에 안전하게 접근할 수 있는 API가 도입되었습니다. ``` MemorySegment segment = MemorySegment.allocateNative(100); MemoryAddress address = segment.baseAddress(); ``` ## Packaging Tool (Incubator) - 자바 애플리케이션을 네이티브 패키지로 만들 수 있는 도구가 도입되었습니다. - 이를 통해 플랫폼에 맞는 설치 파일을 생성할 수 있습니다. ``` > jpackage --input input-dir --output output-dir --name myapp --main-jar myapp.jar ``` ## JFR Event Streaming Java Flight Recorder (JFR)의 이벤트를 실시간으로 스트리밍할 수 있는 기능이 추가되었습니다. ``` try (var es = new EventStream()) { es.onEvent("jdk.CPULoad", event -> System.out.println(event)); es.start(); } ```
연관 포스트
Java 6 주요 특징 및 개선 사항: 성능 향상, 웹 서비스, 스크립팅 언어 지원 등
Java 7 주요 특징 및 개선 사항: 언어 개선, 새로운 IO API, 병렬 프로그래밍 등
Java 8 주요 특징 및 개선 사항: Lambda Expressions, Stream API, 날짜와 시간 API 등
Java 9 주요 특징 및 개선 사항: 모듈 시스템, JShell, Stream API 등
Java 10 주요 특징 및 개선 사항: Local Variable Type Inference, G1 GC 개선 등
Java 11 주요 특징 및 개선 사항: String 메서드, HTTP 클라이언트, ZGC 등
Java 12 주요 특징 및 개선 사항: Switch Expressions, Shenandoah GC 등
Java 13 주요 특징 및 개선 사항: 텍스트 블록, Switch Expressions, ZGC 등
Java 14 주요 특징 및 개선 사항: Pattern Matching, Records, Switch Expressions 등
Java 15 주요 특징 및 개선 사항: 텍스트 블록, Sealed Classes, ZGC 등
Java 16 주요 특징 및 개선 사항: Records, Pattern Matching, Sealed Classes 등
Java 17 주요 특징 및 개선 사항: Sealed Classes, Records, Pattern Matching 등
Java 18 주요 특징 및 개선 사항: Simple Web Server, UTF-8 기본 인코딩 등
Java 19 주요 특징 및 개선 사항: Pattern Matching, Virtual Threads, Foreign Function & Memory API 등
Java 20 주요 특징 및 개선 사항: Pattern Matching, Virtual Threads, Scoped Values 등
Java 21 주요 특징 및 개선 사항: Pattern Matching, Virtual Threads, Structured Concurrency 등