Java8 vs Java11 vs Java17
Last updated
Last updated
함수형 프로그래밍 스타일을 자바에 도입
예시
컬렉션 데이터를 함수형 스타일로 처리하는 도구
주로 Filtering, Mapping, Sorting 등의 작업을 쉽게 수행할 수 있게 해줌
예시
java.time package
java.util.Date와 java.util.Calendar의 복잡함과 불편함을 해결
예시
인터페이스에서 메서드 구현을 제공
예시
Java 9에서 소개되었던 HttpClient
API가 Java 11에서 표준으로 채택 (기존에는 RestTemplate
)
HTTP/1.1, HTTP/2, WebSocket 지원
var
키워드 사용 확장자바 10에서 소개되었던 var
키워드를 사용하여 지연 변수 타입을 추론할 수 있음.
String
클래스
isBlank()
: 문자열이 공백으로만 이루어져 있는지 확인.
lines()
: 문자열을 줄 단위로 분할하여 스트림으로 반환.
strip()
, stripLeading()
, stripTrailing()
: 문자열의 앞뒤 공백을 제거.
repeat(int times)
: 문자열을 주어진 횟수만큼 반복.
예시
Optional
클래스
isEmpty()
: 값이 비어있는지 확인.
예시
Java 11부터는 단일 파일로 작성된 소스 코드를 컴파일 없이 바로 실행할 수 있음.
ZGC
매우 낮은 Latency를 목표로 설계됨 - GC 중 쓰레드가 멈추는 시간을 짧게 유지
대규모 Heap 지원 - 최대 수백 GB까지 메모리를 효율적으로 관리할 수 있음
사용법
Epsilon GC
실험적으로 등장
간결하고 명료한 방식으로 데이터 클래스를 정의할 수 있는 새로운 클래스 유형
멤버 변수는 private final
필드별 getter, equal, hashCode, toString 자동 생성
예시
봉인된 클래스를 사용하여 계층 구조를 더 염격하게 제어
예시
switch
문에 패턴을 적용하여 유연한 매칭이 가능해짐
예시
기존의 Switch문의 중복을 제거한 방식