JDK 11
HTTP Client API 표준화
- 이전방식은 HTTP/1.1 에 머물러있었지만 HTTP/2 멀티플렉싱(하나의 연결로 여러 요청 처리), 헤더 압축등을 기본으로 지원
- 비동기 및 논 블로킹
블로킹 vs 논블로킹 (제어권의 관점)
블로킹 : 점원에게 커피를 주문하고 , 커피가 나올때까지 주문대 앞에서 아무것도 못화고 서서 시다리는 것. 내작업 제어권이 점원에게 있음.
논블로킹 : 점원에게 주문을 하자마자 바로 자리로 돌아오는 것 . 내 작업 제어권이 나에게 있음.
동기 vs 비동기 (결과 처리의 관점)
동기 : 점원이 커피 나왔습니다 라고 할때까지 순서대로 일을 처리하는 것. 작업의 시작과 끝이 딱딱 맞아야함
비동기 : 주문할 때 진동벨을 받고 내 할일을 함. 작업이 완료되었다는 알림이 올때까지 신경쓰지 않고 다른일을 하는 것
- 리액티브 스트림 통합
- 현대적인 빌더 패턴
var 키워드 확장
단일 파일 샐행
JDK 17
언어적 완성도가 대폭 향상된 버전
Sealed Classes
Records (불변 데이터 클래스)
- 기존 DTO의 보일러플레이트 코드를 획기적으로 줄일수 있는 클래스 , 단 setter는 사용불가이고 보통 롬복 Builider 를 통해 값을 주입한다
Swithch 표현식
// 기존 방식 (Statement)
switch (day) {
case MONDAY:
case FRIDAY:
result = 6;
break;
case TUESDAY:
result = 7;
break;
default:
result = 0;
}
// 새로운 방식 (Expression) - 훨씬 간결!
int result = switch (day) {
case MONDAY, FRIDAY -> 6;
case TUESDAY -> 7;
default -> 0;
};
JDK 21
자바 백엔드 성능 획기적 향상
가상 스레드
- 지금까지의 자바의 스레드는 OS 스레드를 그대로 가져다 써서 비싼비용 , 컨텍스트 스위칭 부하 , 낭비되는 시간이 많았다
OS가 아닌 JVM이 관리하는 스레드로 개발하여 가벼운 메모리, M:N 스케쥴링으로 적용하였다.
Sequenced Collections
- 자바의 컬렉션프레임워크(List, Set , Deque 등)는 '순서'가 있음에도 불구하고, 첫번째 요소와 마지막 요소에 접근하는 방법이 제각각 이었음. 접근하는 방법을 하나로 통일
Record Patterns
'JAVA' 카테고리의 다른 글
| JVM(Java virtual Machine)에 대해 (0) | 2026.01.18 |
|---|---|
| 자바 버전 정리하면서 DeepDive (jdk8, jdk9) (0) | 2026.01.18 |
| ArrayList 와 LinkedList (0) | 2024.06.13 |
| length 와 size 의 차이 (0) | 2024.06.13 |
| 빅오 표기법 (0) | 2024.05.28 |
주니어 모코코 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!