자바 LTS 버전별 특징
자바 LTS
- Java의 LTS 버전으로는 Java 8, Java 11, Java 17 버전이 있다.
- LTS란 Long-Term Support라는 뜻으로 장기적인 지원을 받을 수 있는 버전을 말한다.
- 이러한 LTS 버전은 엔터프라이즈 환경 및 장기적인 프로젝트에 적합하며, 오랜 기간 동안 지원과 업데이트가 제공된다.
JAVA 8
- Java 8 은 2014년 3월에 출시된 첫 번째 LTS 버전이다. 2025년 3월 까지 상용 지원을 받을 수 있다.
Oracle 에서 기술적인 지원과 업데이트 제공을 마쳤지만, 일부 엔터프라이즈 벤더가 확장된 지원을 제공할 수 있다.
1. 람다식
- 코드를 간결하게 작성할 수 있고 함수형 프로그래밍 스타일을 지원한다.
2. 스트림(Stream) API
- 컬렉션 데이터를 처리하기 위한 편리한 메소드를 제공하여 코드의 가독성과 유지보수성 향상
3. 날짜와 시간 API 개선
- Joda-Time 라이브러리에서 영감을 받아 새로운 날짜와 시간 관련 API를 도입
JAVA 11
- Java 11 은 2018년 9월에 출시된 두번째 LTS 버전이다. 2024년 9월까지 상용 지원을 받을 수 있다.
- Oracle 은 Java 11부터는 상업용 사용자에게 유료지원을 제공하고 있다.
OpenJDK 커뮤니티에서는 무료로 Java 11의 지원을 계속하고 있다.
모듈 시스템(Java Platform Module System, JPMS) 도입
- 애플리케이션의 모듈화를 지원하여 종속성을 관리하고 애플리케이션의 보안성과 유지보수성 향상
HTTP 클라이언트 API
- HTTP/1.1 및 HTTP/2를 지원하는 비동기 HTTP 통신을 위한 표준 API를 제공한다.
신뢰성 있는 가비지 걸렉션(Garbage Collector, GC)
- Epsilon GC 및 ZGC를 포함한 새로운 GC 알고리즘을 도입하여 성능과 확장성을 개선했다.
JAVA 17
Java 17은 2021년 9월에 출시된 최신 버전이다. 2029년 9월까지 상용 지원을 받을 수 있다.
1. Sealed 클래스와 인터페이스
- Sealed 클래스와 인터페이스는 해당 클래스나 인터페이스를 상속하거나 구현할 수 있는 클래스를 제한하는 기능
- 이를 통해 API의 불변성과 안정선 유지, 코드의 가독성과 유지 보수성 향상 가능
2. 패턴 매칭(Pattern Matching)
- 패턴 매칭은 instanceof 연산자와 switch문을 보다 강력하고 표현력 있게 개선한 기능
- 패턴 매칭은 객체의 구조를 확인하고 해당하는 패턴에 따라 실행 코드를 선택할 수 있는 방법을 제공한다.
- 코드를 간걸하게 작성 가능하다.
3. 기본적인 레코드(Records)
- 레코드는 불변적인 데이터를 저장하는 클래스를 생성하는 데 사용되는 새로운 종류의 클래스이다.
- 자바 17에서는 이러한 레코드를 더욱 쉽게 작성하고 사용할 수 있도록 기능을 개선했다.
- 레코드는 데이터를 저장하고 비교하기 위한 메서드와 생성자 등을 자동으로 생성한다.
- 코드의 간결성과 가독성을 높일 수 있다.
4. 지역 변수 유형 추론의 확장
- 지역 변수 유형 추론의 확장이 이루어졌다.
- 기본적으로 var 키워드를 사용하여 지역 변수의 유형을 추론 가능하다.
- 람다식, 익병 클래스, 열거형 크래스의 변수 선언에도 var 키워드를 사용가능하다.
5. 새로운 스트림 메서드
- 스트림 API 에 몇가지 새로운 메서드가 추가
- takeWhile()
- 주어진 조건을 만족하는 요소를 포함하는 스트림 반환
- 조건을 만족하지 않는 첫번째 요소를 만나면 그 시점에서 스트림 처리를 중단
- dropWhile()
- 주어진 조건을 만족하지 않는 요소를 버리고, 조건을 만족하는 이후의 요소로 구성된 스트림을 반환
- 조건을 만족하는 첫 번째 요소를 만나면 그 이후의 모든 요소를 포함한 스트림을 생성한다.
- 특정 조건을 만족하는 요소만 선택하거나 제외 가능하다.
기타 개선사항
- 성능 개선
- 가비지 컬렉터 개선
- 새로운 암호화 알고리즘 지원
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.