Appearance
Java 버전별 변화 중 중요한 부분만 기록했습니다. 더 자세한건 참고의 링크를 봐주세요.
Java 8
- 함수형 프로그래밍 패러다임 적용
- Lambda expression
- Stream
- Functional interface
- Optional
- interface 에서 default method 사용 가능
- 새로운 Date and Time API
- JVM 개선
- JVM 에 의해 크기가 결정되던 Permanent Heap 삭제
- OS 가 자동 조정하는 Native 메모리 영역인 Metaspace 추가
Default GCSerial GC -> Parallel GC (멀티 스레드 방식) (참고: Parallel GC는 Java 5(JDK 1.5)부터 server VM의 기본 GC였으며, Java 8에서 새롭게 변경된 것은 아님. Java 9부터 G1 GC가 기본 GC로 변경됨)
Java 9
- module
- interface 에서 private method 사용 가능
- Collection, Stream, Optional API 사용법 개선
- ex) Immutable collection, Stream.ofNullable(), Optional.orElseGet()
Default GCParallel GC -> G1GC (멀티 프로세서 환경에 적합)
Java 10
- var (지역 변수 타입 추론)
Java 11
- HTTP Client API
- HTTP/2 지원
- RestTemplate 의 상위 호환
- String API 사용법 개선
- OracleJDK 독점 기능이 OpenJDK 에 포함