오늘은 Java 8, 11, 17은 무엇이고, 각 버전의 주요 업데이트 사항은 무엇인지 알아보겠습니다.
❓LTS란?
LTS는 Long Term Support를 의미합니다.
즉, 출시 후 8년 동안 보안 업데이트 및 버그 수정을 지원합니다.
일반 버전과 달리 안정성에 중점을 둔 버전으로, 기능 업데이트는 최소한으로 이루어지거나, 아예 없는 반면 보안 업데이트의 지원이 일반 버전보다 훨씬 깁니다. 그렇기 때문에 서버 등 최신 기능보다 안정성이 중요한 곳에서 많이 쓰이며, 기업이나 기관 등에서 기능 업데이트로 인해 이용 중인 다른 소프트웨어가 영향을 받는 것을 피하기 위해 이용하기도 합니다.
Java 8 / 11 / 17은 모두 LTS(Long Term Support) 버전입니다.
❓Java 8에서는 어떤 변화가 있었는가?
Java 8에서는 아래와 같은 변화가 있었습니다.
Lamda Expression및Method Reference도입- Lambda Expression
익명 함수를 생성하기 위한 표현식
- Method Reference
- Lambda 표현식을 더 간단하게 표현하는 방법
- ClassName::MethodName 형식으로 사용
- Lambda Expression
Stream API도입
- Collection의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 내부 반복자
Interface default Method도입- Interface 내부에서 default 메서드를 선언할 수 있다.
Optional Class도입- Optional Class를 이용하여
NullPointException이 발생하는 것을 방지해줍니다.
- Optional Class를 이용하여
❓Java 11에서는 어떤 변화가 있었는가?
String과Files에 새로운 메서드 추가- String에 strip, isBlack, lines 등
- Files에 readString 등
- Lambda 인수로
var사용 가능 - 새로운
HTTPClientAPI - 차세대 Garbage Collector
❓Java 17에서는 어떤 변화가 있었는가?
Pattern Matchingfor switchinstanceof를 사용할 때 캐스팅하는 단계를 간소화할 수 있다.
Sealed Classes- 무분별한 상속은 코드를 이해하는데 더 어려움을 줄 수 있음
- 특정 서브 클래스에게만 확장을 허용하고, 다른 클래스에는 봉인(sealed)하는 방법
참고
'Java' 카테고리의 다른 글
Java 입출력, Scanner와 BufferedReader의 비교 (0) | 2022.07.25 |
---|---|
Java 입출력 (스트림, 버퍼) (0) | 2022.07.25 |
JDBC란? (0) | 2020.07.11 |
JSTL(JSP Standard Tag Library)이란? (0) | 2020.07.09 |
EL(Expression Language)이란? (0) | 2020.07.09 |