[#2] Java 언어의 변천사

AMUD·2023년 3월 29일
0

Java Story

목록 보기
2/2

최근 자바 버전 관련 이슈에 정말 많이 부딪혀서 정리하게 되었다. 보통 개발 전에 Java SE 8, Java SE 11, Java SE 17 중에 선택하는 것 같다. JDK, Java SE 등 이름도 다양해서 시간 순으로 정리하였다. 실제로 개발할 때 사용한 컨텐츠 위주로 정리하였다.

💣 JDK

JDK 1.0

  • 1996년 1월 23일 첫 출시
  • JDK 1.0.2가 첫 안정화 버전이고, Java 1이라 불림

JDK 1.1

  • 1997년 2월 19일
  • awt 이벤트 모델 정비, 내부 클래스, Java Beans, 직렬화
  • JIT (Just In Time) 컴파일러

🔮 J2SE (Java 2 Platform, Standard Edition)

J2SE 1.2

  • 1998년 12월 8일
  • Java 2로 브랜드 변경 : 볼륨이 3배 이상 늘어난 중요 릴리즈
  • Swing 클래스 통합, Collection 프레임워크
  • Sun JVM에 처음으로 JIT 컴파일러 탑재

J2SE 1.4

  • 2002년 2월 6일
  • 정규식 라이브러리 개선

🪂 Java SE

Java SE 5

  • 2004년 9월 30일
  • Generic 도입 : Collection에 대한 컴파일 타임 유형 안정성을 제공
  • Enumerations 도입 : enum과 같은 기능 활용 가능
  • Wrapper class : Integer, Character과 같이 원시 타입 변수와의 혼용 가능.
  • Varargs : 메소드의 마지막 매개변수는 이제 유형 이름 뒤에 세 개의 점(예 void drawtext(String... lines): )을 사용하여 선언 가능
  • 현재 사용하는 for each 문으로 향상
  • 다중 스레드 향상

Java SE 8

  • 2014년 3월 18일
  • Lambda, Stream 추가
  • Optional 추가
  • LocalDate, LocalTime, LocalDateTime 추가
  • Hotsspot JVM에서 Permanent Generation 제거 (자바 외 언어로 작성된 네이티브 코드를 위한 메모리 영역)

Java SE 10

  • 2018년 3월 20일
  • 소스 파일을 컴파일하지 않고 실행 가능

Java SE 11

  • 2018년 9월 25일
  • OpenJDK가 OracleJDK로 통합
  • String, File 라이브러리 확장
  • 인터페이스에 private 메서드 가능
  • var 키워드 사용 가능
  • HTTP Client 적용

Java SE 17

  • 2021년 9월 14일
  • OpenJDK가 OracleJDK와 통합
  • 부동 소수점 연산을 일관하게 조정
  • MacOS용 랜더링 파이프라인 구현 : 이후에 OpenGL API 제거 가능성 있음
  • Switch 함수에 Object 전달 가능하고, 클래스 구분 가능
  • NullPointerException 발생 위치 안내 → 감동,,
  • sealed 키워드 도입 : 특정 클래스에 대해 허용되는 하위 클래스
  • Spring Boot 3의 최소 요구 버전

Java SE 18

  • 2022년 3월 22일
  • UTF-8을 기본값으로!
  • Java API Docs에 코드 스니펫 추가
  • 즉시 가용할 수 있는 정적 HTTP 파일 서버 제공

참고

Java version history

Java Versions and Features

profile
210's Velog :: Ambition Makes Us Diligent

0개의 댓글