SIMPOLOR
단순하고 색있게
Java 16 주요 특징 및 개선 사항: Records, Pattern Matching, Sealed Classes 등
단순색
·
2024년 06월 13일
Java
자바 16(Java SE 16)은 2021년 3월에 릴리스되었으며, 여러 새로운 기능과 개선 사항을 포함하고 있습니다. ## Records (Standard) - 자바 14와 15에서 프리뷰 기능으로 제공되었던 레코드가 표준 기능으로 도입되었습니다. - 불변 데이터 객체를 간결하게 표현할 수 있습니다. ``` 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 ``` ## Pattern Matching for instanceof (Standard) 자바 14와 15에서 프리뷰 기능으로 제공되었던 `instanceof`에 대한 패턴 매칭 기능이 표준 기능으로 도입되었습니다. ``` if (obj instanceof String s) { System.out.println(s.toLowerCase()); } ``` ## Sealed Classes (Preview) 클래스와 인터페이스에 대해 상속을 제한할 수 있는 기능이 도입되었습니다. `sealed` 키워드를 사용하여 상속을 허용할 서브클래스를 명시합니다. ``` public sealed class Shape permits Circle, Square { // ... } public final class Circle extends Shape { // ... } public final class Square extends Shape { // ... } ``` ## Vector API (Incubator) 고성능 벡터 연산을 지원하는 API가 도입되었습니다. ``` VectorSpecies<Integer> SPECIES = IntVector.SPECIES_256; int[] a = {1, 2, 3, 4, 5, 6, 7, 8}; int[] b = {1, 2, 3, 4, 5, 6, 7, 8}; int[] c = new int[8]; IntVector va = IntVector.fromArray(SPECIES, a, 0); IntVector vb = IntVector.fromArray(SPECIES, b, 0); IntVector vc = va.add(vb); vc.intoArray(c, 0); ``` ## Foreign Linker API (Incubator) 외부 함수 호출을 간편하게 할 수 있는 API가 도입되었습니다. ``` CLinker linker = CLinker.systemCLinker(); MethodHandle printf = linker.downcallHandle( linker.lookup("printf").get(), MethodType.methodType(int.class, MemoryAddress.class), FunctionDescriptor.of(CLinker.C_INT, CLinker.C_POINTER) ); printf.invoke(CLinker.toCString("Hello, World!").address()); ``` ## Strongly Encapsulate JDK Internals by Default - JDK 내부 API를 기본적으로 강하게 캡슐화하여 보안과 안정성을 강화합니다. - 내부 API에 의존하는 코드의 수정이 필요할 수 있습니다. ## Elastic Metaspace 메타스페이스 영역의 메모리 관리를 개선하여, 메모리 사용량을 줄이고 성능을 향상시킵니다.
연관 포스트
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 등