SIMPOLOR
단순하고 색있게
Java 10 주요 특징 및 개선 사항: Local Variable Type Inference, G1 GC 개선 등
단순색
·
2024년 06월 05일
Java
자바 10(Java SE 10)은 2018년 3월에 릴리스되었습니다. 자바 10은 비교적 짧은 주기의 릴리스였으며, 주로 성능 개선과 개발자 생산성을 높이기 위한 몇 가지 주요 기능을 도입했습니다. ## Local-Variable Type Inference - `var` 키워드를 사용하여 지역 변수의 타입을 컴파일러가 추론할 수 있게 되었습니다. - 코드의 가독성을 높이고 더 간결하게 작성할 수 있도록 합니다. ``` var list = List.of("one", "two", "three"); for (var item : list) { System.out.println(item); } ``` ## G1 Garbage Collector Improvements Parallel Full GC for G1: G1 가비지 컬렉터에서 전체 가비지 수집 시 병렬 처리가 가능해졌습니다. ``` > java -XX:+UseG1GC MyApp ``` ## Application Class-Data Sharing 애플리케이션 클래스 데이터 공유(Application Class-Data Sharing, AppCDS)를 통해 애플리케이션 시작 시간을 단축시키고 메모리 사용량을 줄일 수 있습니다. ``` > java -Xshare:dump -XX:SharedArchiveFile=app-cds.jsa -cp myapp.jar MyApp > java -Xshare:on -XX:SharedArchiveFile=app-cds.jsa -cp myapp.jar MyApp ``` ## Parallel Full GC for G1 G1 가비지 컬렉터에서 풀 GC를 병렬로 처리하여 성능을 향상시켰습니다. ``` > java -XX:+UseG1GC -XX:+UseParallelGC MyApp ``` ## Thread-Local Handshakes 쓰레드 로컬 핸드셰이크를 도입하여, JVM의 모든 쓰레드를 일시 정지하지 않고도 쓰레드별 작업을 수행할 수 있습니다. ## Container Awareness 자바 10은 컨테이너 환경에서 더 잘 동작하도록 개선되었습니다. 특히 메모리 및 CPU 할당을 보다 효율적으로 처리할 수 있습니다. ## Heap Allocation on Alternative Memory Devices 힙 할당을 대체 메모리 장치(NVDIMM 등)에 할 수 있는 기능이 추가되었습니다. 이를 통해 메모리 관리의 유연성을 높일 수 있습니다. ``` > java -XX:AllocateHeapAt=/path/to/memory MyApp ``` ## Root Certificates 자바 10은 오픈소스 루트 인증서를 포함하여, TLS 연결의 보안성을 높였습니다. ``` > keytool -list -cacerts ``` ## Consolidate the JDK Forest into a Single Repository JDK의 여러 저장소를 단일 저장소로 통합하여, 빌드 프로세스를 간소화하고 유지 보수를 쉽게 할 수 있도록 했습니다. ## Remove the Native-Header Generation Tool (javah) `javah` 도구가 제거되었습니다. 이제 `javac`가 네이티브 헤더 파일을 생성하는 기능을 포함합니다.
연관 포스트
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 등