이번 내용은 자바 버전별 특징과 차이점입니다.
현재 자바 버전 상황

위 사진을 보면 LTS 라는 글자가 붙은 숫자가 있다.
LTS는 Long Term Support로 오랜 기간 지원한다는 뜻으로 보통 LTS가 붙은 버전을 사용한다.

그 중에서도 8, 11, 17은 특히 길다. (그 중에서도 8이 가장 김!)
8버전 이후로 사용하는 것이 좋다고 한다.
Java 8

- 오라클이 java를 인수한 후 첫번째 LTS 출시 버전
- 32비트를 지원하는 마지막 버전 (공식적)
- 유료와 무료로 나뉨 (Oracle JDK / Open JDK)
- LocalDateTime과 같은 새로운 날짜, 시간 API 제공
- Unsigned Integer 계산
- *람다식 제공
- Stream API 제공
- PermGen 영역 삭제
- 대신 Metaspace 영역 추가
- Perm은 JVM에 의해 크기가 강제되던 영역
- Metaspace는 Native memory 영역으로 OS가 자동으로 크기 조절 -> 기존과 비교해 큰 메모리 영역 사용 가능
- Static Link JNI Library 제공
Java 11

- Open JDK와 Oracle JDK 통합
- Open JDK가 구독형 유료모델로 전환
- G1 GC가 기본 GC로 설정 (GC : Garbage Collection)
- 람다 지역변수 var 키워드 사용 가능
- 컬렉션, 스트림 등에 메소드 추가
Java 17

- recode class 키워드 사용 가능
- 난수 생성 API 추가
- 봉인 클래스 (Sealed Class) 정식 추가
- String 여러줄 사용 시 텍스트 블록 기능 사용 가능
- NumberFormat, DateTimeFormatter 기능 향상
- Stream.toList() 사용 가능
java 자체를 모르다보니 람다, Stream, 컬렉션 등등 찾아보며 적고는 있지만 이해가 잘 안 된다.
-> java 비중을 더 늘려 공부해야할 듯 합니다.
참고자료
https://cheerup313.tistory.com/86
https://velog.io/@kjs8960/%EC%9E%90%EB%B0%94-%EC%A0%95%EB%B3%B5-%EC%9D%BC%EA%B8%B0-1%EC%A3%BC%EC%B0%A8